Recommended Posts

Hi, xorangekiller.

 

My Chromebook is put on Developer Mode and i have "crossystem dev_boot_usb=1" set in Chrome OS in order to be able to boot self-signed kernels from USB/SD media.

If i'll set up Debian using your partition scheme, will USB/SD boot (with Ctrl+U) still work?

 

I'm asking because i've already tried a scheme with Debian on eMMC having just two partitions (one with self-signed kernel, second with rootfs), and while i was able to boot into Debian (with Ctrl+D), the USB/SD boot got broken.

 

Thank you!

Excellent description, thank you.

I am writing this using my Chromebook, debian installed.

Maybe the preparation of the internal ssd can be shortened by the following script:

 

#!/bin/sh

target_disk=/dev/mmcblk0
cgpt create ${target_disk}
cgpt add -i 11 -b 64 -s 16384 -S 1 -P 5 -l RWFW -t "firmware" ${target_disk}
cgpt add -i 6 -b 16448 -s 1 -S 1 -T 15 -P 0 -l KERN-C -t "kernel"  ${target_disk}
cgpt add -i 7 -b 16449 -s 1  -l ROOT-C -t "rootfs"   ${target_disk}
cgpt add -i 9 -b 16450 -s 1  -l reserved -t "reserved"   ${target_disk}
cgpt add -i 10 -b 16451 -s 1  -l reserved -t "reserved"   ${target_disk}
cgpt add -i 2 -b 16452 -s 32768 -S 1 -T 15 -P 15 -l KERN-A -t kernel ${target_disk}
cgpt add -i 4 -b 49220 -s 32768 -S 1 -T 15 -P 0 -l KERN-B -t kernel ${target_disk}
cgpt add -i 8 -b 81988 -s 32768  -l OEM -t data   ${target_disk}
cgpt add -i 12 -b 114756 -s 32768 -S 1 -P 5 -l EFI-SYSTEM -t "efi" ${target_disk}
cgpt add -i 5 -b 147524 -s 4096  -l ROOT-B -t rootfs ${target_disk}
cgpt add -i 3 -b 151620 -s 28870622 -S 1 -P 5 -l ROOT-A -t rootfs ${target_disk}

cgpt add -i 1 -b 29022242 -s 1755069  -l STATE -t data ${target_disk}
sync

mkfs.ext4 ${target_disk}p3
mkswap ${target_disk}p1

Norbert

  • 2 weeks later...

Karl L.,

 

Firstly kudos for your excellent work so far.  :D

 

I'd like to understand how booting works, after one has followed your instructions.  Am I right that:

  1. The default "verified" uboot bootloader is not used (nor is the alternate "non-verified" nv-uboot bootloader? For more details on nv-uboot, please see "Appendix A: Using nv-U-Boot on the Samsung ARM Chromebook":
    http://www.chromium.org/chromium-os/u-boot-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook ).  It seems you somehow use "firmware-linux" and "firmware-libertas" instead.  I've never heard of those (as I'm only familiar with how GRUB works, on PC's).  What are those?  What do they do?
  2. "firmware-linux" and "firmware-libertas" somehow boots a "stock" linux kernel that you compiled and packaged yourself, called "linux-image-exynos5" (as opposed to "borrowing" and "signing" the ChromeOS kernel, which is what one must unfortunately do using the current instructions found on "InstallingDebianOn Samsung ARMChromebook":
    https://wiki.debian.org/InstallingDebianOn/Samsung/ARMChromebook
  3. When future versions of your "linux-image-exynos5" are released (say, because there was an important security update released for the kernel), they'll "just work" (at boot time), when one installs them with "sudo apt-get update && sudo apt-get upgrade"?

If I'm correct on these 3 points, then how were you able to "get away with" not using the nv-uboot bootloader?  That is to say, why couldn't the Debian folks follow suit and boot their own stock linux kernels with "firmware-linux" and "firmware-libertas" like you do?

 

Note: The Debian folks are currently stuck on how to boot a stock linux kernel from nv-u-boot, as seen on
"InstallingDebianOn Samsung ARMChromebook":

https://wiki.debian.org/InstallingDebianOn/Samsung/ARMChromebook


  "Three partitions are created on the disk. In time, the intention is that these be used for:
   - a copy of nv-uboot that is chainloaded by the standard firmware,
   - a /boot filesystem containing the standard (non-ChromeOS) kernel, read by nv-uboot,
   - the root filesystem.

  Currently nv-uboot is *not* used, and so the arrangement is:
   - a copy of the ChromeOS kernel that is loaded by the standard firmware,
   - a /boot filesystem that is used only to contain the ChromeOS kernel (which is not used during booting, just during the preparation of the previous partition),
   - the root filesystem."

 

I would appreciate any clarification, as you seem to understand these things really well.  GPT and "verified" bootloaders are tough to understand, especially when it comes to how to boot stock linux kernels.

Karl L.,

 

Your work is much appreciated.   :woot:   I write this posting from my new Debian Jesse install on my Samsung ARM Chromebook.

 

A few things could be filled into your procedure:

  • Before doing step 2.3, you didn't mention how to get the Chromebook connected to one's wifi network.  Here's how I did that (well, I'm pretty sure these were the minimal steps that succeeded):
    • ifconfig mlan0 down
    • ifconfig mlan0 essid MySSIDsNameHere key s:MyWifiPasswordHere
    • ifconfig mlan0 up
    • (wait about 15 seconds for the wifi authentication to work)
    • dhclient mlan0
    • (wait a few seconds for a DHCP lease to be assigned)
    • ifconfig mlan0
    • (you should now see a valid DHCP-assigned IP address for "inet addr" on the second line)
  • Before you can do step 2.3, gdisk needs to be installed on the Debian-formatted SD card.  I installed it with:
  • Later in step 2.6, when I tried to run the command "umount /mnt/rar/dev/pts", it wouldn't unmount, as it was "busy".  Nothing except a reboot could clear this up.

I also answered my own questions above as to how booting works:

  • You've left the default uboot "verified" bootloader in place.
  • Your package linux-image-exynos5 provides a kernel which will work with that bootloader
  • To get the bootloader to boot that kernel, the "update-chromebook-vboot" had to be run, which came from your package "chromebook-kernel-vboot"
  • 4 weeks later...

Is it possible to tailor all that operations to using nv-U-Boot? So that the chromebook booted right away without need to press Ctrl-D etc.?

http://www.chromium.org/chromium-os/u-boot-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook

  • 2 weeks later...

 

Karl L.,

 

Your work is much appreciated.   :woot:   I write this posting from my new Debian Jesse install on my Samsung ARM Chromebook.

 

A few things could be filled into your procedure:

  • Before doing step 2.3, you didn't mention how to get the Chromebook connected to one's wifi network.  Here's how I did that (well, I'm pretty sure these were the minimal steps that succeeded):
    • ifconfig mlan0 down
    • ifconfig mlan0 essid MySSIDsNameHere key s:MyWifiPasswordHere
    • ifconfig mlan0 up
    • (wait about 15 seconds for the wifi authentication to work)
    • dhclient mlan0
    • (wait a few seconds for a DHCP lease to be assigned)
    • ifconfig mlan0
    • (you should now see a valid DHCP-assigned IP address for "inet addr" on the second line)

 

 FWIW I also had to use wpa_supplicant here at some point.

 

Also, to OP: I'm getting a weird issue where I can't activate swap space, like at all. When I try to swapon the one we made during the partitioning via (using gparted to swapon) I get:

 

swapon: /dev/mmcblk0p1: found swap signature: version 1, page-size 4, same byte order

swapon: /dev/mmcblk0p1: pagesize = 4096

swapsize = 2251292672, devsize = 2251293184

swapon: /dev/mmcblk0p1: swapon failed: invalid argument

 

Thinking I may have set something up wrong in the partitioning I took a flash drive and formatted it as swap space, plugged it in, and got the same error except with different numbers in line three.

 

Any advice?

  • 5 months later...

Hey Karl (or anybody else),

 

Could you please upload a image of the environment setup in the first post?

 

I've been spending so much time trying to get Mali drivers for OpenGL working in a Ubuntu/Debian environment for my ARM chromebook but everywhere is either out of date or has broken links.

 

Karl/xorangekiller is the only one who seems to have a good setup.

Your a linux god lol

 

After reading your reply first and then the rest of the posts, I'm totally flabbergasted!

 

So much so that my eyes are all messed up like this emoticon! :s

 

I couldn't fathom all that stuff!!

 

Amazing job!!

  • 3 years later...

Excellent work! I know it's been nearly four years since the last post, and the 2012 Samsung 3 Chromebook is nearly an antique by computing standards, but I would very much like to try to install Debian Stretch following your very detailed instructions. Sadly, after all this time, the Dropbox links appear to be in 404 country. Any chance you might update your instructions with fresh links and perhaps some info on installing Stretch instead of Jessie? It should be fairly sraight-forward, but I'm still using Linux training wheels with my little Raspberry Pi, so nothing comes quite as easy to me as it might. Thanks!  :@)

Topic closed.

 

Karl has not been active on Neowin for many years now, and many of the replies were made by passersby who are also no longer active. Unfortunately I do not believe anyone will have a copy of the files to share with you.

  • DrunknMunky locked this topic
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Display Driver Uninstaller (DDU) 18.1.5.5 by Razvan Serea Display Driver Uninstaller (DDU) is a utility for completely removing AMD/NVIDIA/INTEL graphics drivers and related packages from your system, attempting to eliminate all leftovers (including registry entries, folders and files, driver store). Though AMD/NVIDIA/INTEL drivers can usually be removed via the Windows Control Panel, this uninstaller tool was created for situations where standard uninstall fails, or when you need to fully remove NVIDIA or ATI graphics card drivers. After using this driver cleaner, your system will behave as though it’s the first time you’re installing a new driver—similar to a fresh Windows installation. As with all such tools, we recommend creating a restore point beforehand, allowing you to undo changes if issues arise. If you're having trouble installing an older or newer driver, try it—there are reports that it resolves such problems. Recommended usage: The tool can be used in Normal mode but for absolute stability when using DDU, Safemode is always the best. Make a backup or a system restore (but it should normally be pretty safe). It is best to exclude the DDU folder completely from any security software to avoid issues. You do NOT need to uninstall the driver prior using DDU. Requirements: .NET Framework 4.8 Compatible with Windows 7, 8, 8.1, 10, and 11 (32-bit or 64-bit) Note: Using on Insider Preview builds is at your own risk. Display Driver Uninstaller (DDU) 18.1.5.5 changelog: Added 'Reset to recommended' button for the Options. General fixes and improvements. Download: Display Driver Uninstaller (DDU) 18.1.5.5 | 1.7 MB (Freeware) Download: DDU Portable | 1.2 MB Links: Display Driver Uninstaller Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • WACUP 1.99.51.24568 Preview by Razvan Serea WACUP (WinAmp Community Update Project) is a modern, enhanced version of the classic Winamp music player, designed for better stability, performance, and compatibility. Built for Windows, WACUP retains the familiar Winamp interface while adding 64-bit support, bug fixes, and new features like improved audio format support, customizable skins, and optimized playlist management. Unlike bloated alternatives, WACUP focuses on lightweight performance and regular updates, making it the best choice for fans of the classic Winamp experience. Basically, if you miss the good old days of Winamp and want a modern upgrade that doesn’t mess things up, WACUP is for you! WACUP key features: Classic Winamp Feel – Keeps the familiar interface and functionality. Bug Fixes & Stability – Fixes old Winamp issues and improves performance. 64-Bit Support – Works better on modern systems. More Formats & Plugins – Supports additional audio formats and third-party plugins. Customizable UI – Skins and tweaks for a personalized look. Better Library Management – Improved playlists, media organization, and search. No Bloat – Focuses on performance without unnecessary extras. Regular Updates – Community-driven development with new features and fixes. WACUP 1.99.51.24568 Preview changelog: Fixed a deadlock seen from the recent crash reports when doing some of the drag + drop actions within the media library window Fixed a loading crash seen related to a problem with some of the artwork cache image files being restored which should now be better handled allowing for the bad image to be removed without it failing Fixed a deadlock seen from the recent crash reports when the internal metadata cache clearing is triggered which could block the main ui thread for too long with this now being moved to a background thread Fixed some performance issues with some of the methods related to determining artwork support which mainly affected the local library import / refresh (this is still slower for some compared to other players because there's more data & artwork aspects being checked for which means doing more processing on a single file despite the best of attempts to reduce duplicate / heavy processing where possible) Fixed a crash with the JTFE based missing files hotkey which no one seems to have used for an age for this to appear (maybe it's time to seriously consider stripping out features that aren't being used) Fixed how some of the file types which use extra information to reference their sub-songs is handled which was preventing some from being correctly resolved back to their base file (noticed fixing above) Fixed an issue with the handling of files with underscores in their filepath which wasn't being correctly handled causing some of the filename to be lost when shown as the title if title reading is delayed Fixed a few things that might be behind NotSoDirect not being stable for some setups though am still not certain that the changes done for this are going to fully resolve the problem from the crash reports Fixed the OS toast handling when there's no prior shortcut in the OS start menu to now create the shortcut (needed to allow the yes/no buttons for the new build / post-release toast) to be done as a hidden one so it's less likely to cause annoyance for those not wanting to see it whilst still allowing this less than ideal OS api implementation requirement to be met to avoid toasts without the needed buttons Fixed a regression when moving from taglib1 to taglib2 which broke some of the handling in place to allow for external programs to still access files when wacup has a held open cached instance of the file Everything else Updated cppwinrt (gen_win10shell.dll) to 3.0.260520.1 (26 May 2026) Updated libcurl (libcurl.dll) to 8.2.1 (24 Jun 2026) Updated Monkey's Audio (in_ape.dll) to 13.15 (28 Jun 2026) Updated mpg123 (mpg123.dll) to 1.33.6 (6 Jun 2026) Updated OpenSSL (libcurl.dll) to 3.5.7 (9 Jun 2026) Updated pugixml to 1.16 (16 Jun 2026) Updated taglib (tag2.dll) to 2.3.0 (11 May 2026) Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 28 Jun 2026 Download: WACUP 64-bit | 9.6 MB (Freeware) Download: WACUP 32-bit View: WACUP Website | Screenshots Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • "over a thousand engineering hours" and started selling it but could not take a couple of minuets to send an AI email to ask permission. What an expensive lesson.
    • just tested it yesterday, a simple page with autoloading ADS takes 60mb....just 1 page for 60 megabytes.   poor people with a limited internet never will visit neolose
    • Tor Browser 15.0.17 by Razvan Serea Protect your privacy. Defend yourself against network surveillance and traffic analysis. Tor is a network of virtual tunnels that allows people and groups to improve their privacy and security on the Internet. The Tor software protects you by bouncing your communications around a distributed network of relays run by volunteers all around the world: it prevents somebody from watching your Internet connection and learning what sites you visit, it prevents the sites you visit from learning your physical location, and it lets you access sites which are blocked. The Tor Browser Bundle lets you use Tor on Windows, Mac OS X, or Linux without needing to install any software. It can run off a USB flash drive, comes with a pre-configured web browser to protect your anonymity, and is self-contained. Tor Browser 15.0.17 changelog: All Platforms Updated Tor to 0.4.9.11 Updated NoScript to 13.6.25.1984 Build System / All Platforms Bug tor-browser-build#41821: Update gpg subkeys for boklm Bug tor-browser-build#41827: Update morgan's keychain with renewed key Download: Tor Browser (64-bit) | Tor Browser (32-bit) | 109.0 MB (Open Source) View: Tor Browser Website | Other Operating Systems Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Reacting Well
      Wakeen1966 earned a badge
      Reacting Well
    • Rookie
      Almohandis went up a rank
      Rookie
    • Apprentice
      jahara21 went up a rank
      Apprentice
    • Reacting Well
      NovaEdgeX earned a badge
      Reacting Well
    • Week One Done
      NovaEdgeX earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      530
    2. 2
      +Edouard
      266
    3. 3
      PsYcHoKiLLa
      148
    4. 4
      Steven P.
      99
    5. 5
      macoman
      55
  • Tell a friend

    Love Neowin? Tell a friend!