Recommended Posts

I bought a used Samsung Series 3 Chromebook (AKA the 2012 Samsung ARM Chromebook) about 3 weeks ago and have spent the majority of my free time since then trying to replace Chrome OS with Debian on the internal SSD. Although there is already a guide on the Debian wiki for almost this exact purpose, it makes use of binary blobs from Chrome OS and does not discuss replacing Chrome OS, only installing Debian on an SD card. That method works - and I used it verbatim to bootstrap my installation on the internal SSD - but as the author of the page admits it relies on unpackaged software with no source code available, which will potentially make the system difficult to maintain. Therefore I created a repository and packaged all of the required software not already in the Debian archive from upstream sources. I also wrote a few utilities of my own, which I also packaged and pushed to my repository, to fill in gaps in functionality not already covered by existing software. The result is a full installation of Debian Jessie (armhf) with the XFCE desktop environment and entirely packaged free software supporting it (with the exception of the proprietary Mali GLES library required for hardware graphics acceleration, which is packaged but obviously not DFSG free).

Anyone else who has this hardware is welcome to make use of my rough installation guide below. If you find any bugs in my packages, have suggestions for improvements, or would like me to clarify something, please let me know in this thread. Although I can't promise that I will maintain this repository indefinitely, I always archive copies of software I write and package. Therefore if my repository is down or no longer contains some of the software referenced in this guide, feel free to PM me and I will try to offer a resolution.
 
 
 

Without further ado, I present a rough guide for:
Replacing Chrome OS with Debian Jessie on the Samsung Series 3 Chromebook
The Right Way
 
 

1. Follow the "InstallingDebianOn Samsung ARMChromebook" guide on the Debian wiki to install Jessie on an SD card or flash drive. This external image will in turn be used to install Jessie on the Chromebook's internal SSD.
 
 

2. Boot from the Debian installation you just created (Ctrl+U), and bootstrap the installation on the SSD.

 
2.1. Format ROOT-A (/dev/mmcblk0p3) as EXT4.

mkfs.ext4 /dev/mmcblk0p3

 
 
2.2. Format STATE (/dev/mmcblk0p1) as SWAP.

mkswap /dev/mmcblk0p1

 
 
2.3. Use gdisk to shrink STATE to 2147 MB (Start: 13.6 GB; End: 15.7 GB). The necessary procedure is explained in this tutorial.

 
2.4. Use gdisk to expand ROOT-A to 11.3 GB (Start: 2292 MB; End: 13.6 GB).

gdisk /dev/mmcblk0

# Delete the partition and create it again with the desired size.
# You are required to know how to do this in gdisk.
# If you do not, read the tutorial linked in the previous step.

resize2fs /dev/mmcblk0p3

 
2.5. Use cgpt to mirror the Chrome OS priorities for the partitions.

cgpt show /dev/mmcblk0
cgpt add -i 2 -S 1 -T 15 -P 15 /dev/mmcblk0
cgpt add -i 4 -S 1 -T 15 -P 0 /dev/mmcblk0
cgpt add -i 6 -S 1 -T 15 -P 0 /dev/mmcblk0
cgpt add -i 1 -t data -l "STATE" /dev/mmcblk0
cgpt add -i 2 -t kernel -l "KERN-A" /dev/mmcblk0
cgpt add -i 3 -t rootfs -l "ROOT-A" /dev/mmcblk0
sync

 
2.6. Install Debian Jessie on ROOT-A.

mkdir /mnt/rar
mount /dev/mmcblk0p3 /mnt/rar -o rw,discard

debootstrap --arch=armhf jessie /mnt/rar http://ftp.us.debian.org/debian
  
nano /mnt/rar/etc/fstab
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/mmcblk0p3 during installation
echo "UUID=$(blkid | grep mmcblk0p3 | grep -Eo '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}') /               ext4    errors=remount-ro,noatime,nodiratime,discard  0       1" >> /mnt/rar/etc/fstab
echo '# swap was on /dev/mmcblk0p1 during installation' >> /mnt/rar/etc/fstab
echo "UUID=$(blkid | grep mmcblk0p1 | grep -Eo '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}') none            swap    sw                            0       0" >> /mnt/rar/etc/fstab

echo 'MY_HOSTNAME' > /mnt/rar/etc/hostname
  
nano /mnt/rar/etc/apt/sources.list
    ## JESSIE
    deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
    deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free
    
    ## JESSIE-SECURITY
    deb http://security.debian.org/ jessie/updates main contrib non-free
    deb-src http://security.debian.org/ jessie/updates main contrib non-free
  
chroot /mnt/rar
apt-get update
apt-get install apt-transport-https console-setup bash-completion
wget -q https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/keys/xorangekiller.asc'>https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/keys/xorangekiller.asc -O- | apt-key add -
passwd root
exit
  
nano /mnt/rar/etc/apt/sources.list.d/killer.list
    deb https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/ unstable main contrib non-free
    deb-src https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/ unstable main contrib non-free
  
mount -o bind /proc /mnt/rar/proc
mount -o bind /dev /mnt/rar/dev
mount -o bind /dev/pts /mnt/rar/dev/pts
chroot /mnt/rar
apt-get update
apt-get install linux-image-exynos5 linux-headers-exynos5 firmware-linux firmware-libertas
apt-get install systemd chromebook-kernel-vboot parted
nano /etc/default/chromebook-vboot
    LINUX_CMDLINE = "lsm.module_locking=0 quiet init=/lib/systemd/systemd"
update-chromebook-vboot
  
apt-get install lightdm task-xfce-desktop
apt-get install libegl1-mali xserver-xorg-video-armsoc xserver-xorg-input-multitouch xserver-xorg-input-mouse
adduser bob
apt-get install sudo
usermod -a -G sudo,users bob
exit
umount /mnt/rar/dev/pts
umount /mnt/rar/dev
umount /mnt/rar/proc
  
mkdir /mnt/rar/etc/X11/xorg.conf.d
nano /mnt/rar/etc/X11/xorg.conf.d/51-multitouch.conf
    Section "InputClass"
        Identifier          "touchpad"
        MatchIsTouchpad     "on"
        Option              "FingerHigh"            "5"
        Option              "FingerLow"             "5"
        Option              "TapButton1"            "1"
        Option              "TapButton2"            "2"
        Option              "TapButton3"            "3"
        Option              "VertEdgeScroll"        "off"
        Option              "VertTwoFingerScroll"   "on"
        Option              "HorizEdgeScroll"       "off"
        Option              "HorizTwoFingerScroll"  "on"
        Option              "CircularScrolling"     "off"
        Option              "CircScrollTrigger"     "2"
        Option              "CoastingSpeed"         "0"
    EndSection
nano /mnt/rar/etc/X11/xorg.conf.d/30-exynos.conf
    Section "Device"
        Identifier      "Mali FBDEV"
        Driver          "armsoc"
        Option          "fbdev"                 "/dev/fb0"
        Option          "Fimg2DExa"             "false"
        Option          "DRI2"                  "true"
        Option          "DRI2_PAGE_FLIP"        "false"
        Option          "DRI2_WAIT_VSYNC"       "true"
    #   Option          "Fimg2DExaSolid"        "false"
    #   Option          "Fimg2DExaCopy"         "false"
    #   Option          "Fimg2DExaComposite"    "false"
        Option          "SWcursorLCD"           "false"
    EndSection
    
    Section "Screen"
        Identifier      "DefaultScreen"
        Device          "Mali FBDEV"
        DefaultDepth    24
    EndSection
  
mkdir /mnt/rar/home/bob/.scripts/
nano /mnt/rar/home/bob/.scripts/chromebook-local-keymap
    #!/bin/sh
    
    xmodmap -e 'keycode 22 = BackSpace Delete BackSpace Delete BackSpace BackSpace'
    xmodmap -e 'keycode 67 = XF86Back F1 XF86Back F1 F1 F1 XF86Switch_VT_1'
    xmodmap -e 'keycode 68 = XF86Forward F2 XF86Forward F2 F2 F2 XF86Switch_VT_2'
    xmodmap -e 'keycode 69 = XF86Refresh F3 XF86Refresh F3 F3 F3 XF86Switch_VT_3'
    xmodmap -e 'keycode 70 = XF86Battery F4 XF86Battery F4 F4 F4 XF86Switch_VT_4'
    xmodmap -e 'keycode 71 = XF86Display F5 XF86Display F5 F5 F5 XF86Switch_VT_5'
    xmodmap -e 'keycode 72 = XF86MonBrightnessDown F6 XF86MonBrightnessDown F6 F6 F6 XF86Switch_VT_6'
    xmodmap -e 'keycode 73 = XF86MonBrightnessUp F7 XF86MonBrightnessUp F7 F7 F7 XF86Switch_VT_7'
    xmodmap -e 'keycode 74 = XF86AudioMute F8 XF86AudioMute F8 F8 F8 XF86Switch_VT_8'
    xmodmap -e 'keycode 75 = XF86AudioLowerVolume F9 XF86AudioLowerVolume F9 F9 F9 XF86Switch_VT_9'
    xmodmap -e 'keycode 76 = XF86AudioRaiseVolume F10 XF86AudioRaiseVolume F10 F10 F10 XF86Switch_VT_10'
  
chroot /mnt/rar
chown -R bob:bob /home/bob/.scripts
chmod -R 755 /home/bob/.scripts
apt-get install alsa-utils pulseaudio-utils libasound2-data
apt-get install chromebook-brightness-control
visudo
    # Allow all users to set the screen brightness without a password
    %users  ALL=(ALL) NOPASSWD: /usr/bin/chromebook-brightness-control
exit
  
nano /mnt/rar/etc/pulse/default.pa
    ### Load audio drivers statically
    ### (it's probably better to not load these drivers manually, but instead
    ### use module-udev-detect -- see below -- for doing this automatically)
    load-module module-alsa-sink device=sysdefault
  
umount /mnt/rar
reboot

3. Boot from the Debian installation on the internal SSD (Ctrl+D), and setup the Chromebook keymap and shortcuts.

 
3.1. Go to "Applications Menu->Settings->Session and Startup->Application Autostart".
 
3.1.1. Add the Chromebook local keymap script to the login processes for the current user (bob).
Click "Add".
Name: Chromebook Local Keymap
Description: Set the proper keymap for the Samsung Series 3 Chromebook keyboard for the current user
Command: /home/bob/.scripts/chromebook-local-keymap
 

3.2. Run the Chromebook local keymap script you just added as a login process.




~/.scripts/chromebook-local-keymap

3.3. Go to "Applications Menu->Settings->Keyboard->Application Shortcuts".
 
3.3.1. Add the shortcut to turn the screen brightness down.
Click "Add".
Command: /usr/bin/sudo /usr/bin/chromebook-brightness-control --down --increment=200
Click "OK".
Shortcut: XF86MonBrightnessDown
Click "OK".

3.3.2. Add the shortcut to turn the screen brightness up.
Click "Add".
Command: /usr/bin/sudo /usr/bin/chromebook-brightness-control --up --increment=200
Click "OK"
Shortcut: XF86MonBrightnessUp
Click "OK"

  • Like 2
  • 1 month later...
  • 2 weeks later...

a there are some missing links but most important is the debian link https://wiki.debian.org/InstallingDebianOn/Samsung/ARMChromebook gives an error on jessie..

 

Nonethe less, Im willing to try this using my current arch build but Im a bit confused on your partition for mmcblk0, are all the partitions 1-6? Because I, staring at 12 on mine..

a there are some missing links but most important is the debian link https://wiki.debian.org/InstallingDebianOn/Samsung/ARMChromebook gives an error on jessie..

 

How so? I clicked every link in my guide a few minutes ago, and they are all still active. Although the guide on the Debian wiki has been updated slightly since I posted this tutorial, it still looks intact. I admit that I didn't follow the guide exactly the first time I used it (mostly because I installed Jessie on a flash drive instead of an SD card), but my deviation was slight. I have no reason to believe it doesn't work as-is.

 

Nonethe less, Im willing to try this using my current arch build but Im a bit confused on your partition for mmcblk0, are all the partitions 1-6? Because I, staring at 12 on mine..

You are correct. There are twelve partitions. However, it is not necessary to use all of them for this procedure to work. On the contrary, I would prefer to start with a clean partition table and create only the partitions we absolutely need (which is technically four - firmware, kernel, boot, and root). However the Chromebook's firmware assumes the factory partition layout on the internal disk, and it would be far more effort than it's worth to install modified firmware to change that assumption, in my opinion. Therefore my guide instructs you to repurpose the existing partitions and set the appropriate flags to notify the firmware of the nominal changes (from its perspective).

You're guidelines seems SO interesting that I'm ready to replace ChromeOS with debian. However, the link for the tutorial on gdisk seems to be broken. I've never used gdisk and I'm a little afraid of messing things up on the chromebook's ssd. From what I've read on the web, it seems that I have to delete the partition and create it again. Could you be so kind and explain that procedure a little further?

 

 

TIA,

 

Ignacio

You're guidelines seems SO interesting that I'm ready to replace ChromeOS with debian. However, the link for the tutorial on gdisk seems to be broken. I've never used gdisk and I'm a little afraid of messing things up on the chromebook's ssd. From what I've read on the web, it seems that I have to delete the partition and create it again. Could you be so kind and explain that procedure a little further?

 

I fixed the broken link you pointed out, but after taking another look at the tutorial, I decided it would probably be a good idea for me to elaborate anyway. After all, partition and filesystem manipulation can be a little scary, even for those of us with more experience, so it doesn't hurt to be thorough. My instructions below correspond roughly to sections 2.1-2.5 in my opening post. I included a few extra commands which don't modify the procedure in any way, but should give you a better understanding of what is actually happening. Also note that I generated the output you see below in a virtual machine (in the interest of not reformatting my Chromebook again just for the purposes of this tutorial) using a virtual hard disk imaged with the Chrome OS recovery image for my Chromebook. Therefore while the partition table should be reasonably similar to one on an actual Chromebook, don't take it as canonical.

 

Without further ado, every command I entered to modify the partition table and filesystem (in order), along with their unabridged output, is below.

root@T1008:~# gdisk -l /dev/mmcblk0
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 135130 sectors (66.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1         2826240        33554398   14.7 GiB    0700  STATE
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720         2826239   1.2 GiB     7F01  ROOT-A
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM
root@T1008:~# cgpt show /dev/mmcblk0
       start        size    part  contents
           0           1          PMBR (Boot GUID: 5F80E349-F725-6147-91AD-6C44106C5813)
           1           1          Pri GPT header
           2          32          Pri GPT table
     2826240    30728159       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: A415F487-AA07-4FFF-8A85-6A0A809583EC
       20480       32768       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 213142CC-4F72-B843-9DDB-B1C5524BF811
                                  Attr: priority=15 tries=15 successful=1
      286720     2539520       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: C860A2E2-176B-CF40-8053-37C409873F5C
       53248       32768       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: DB75DACA-EA06-8348-90D3-2457C29E4451
                                  Attr: priority=0 tries=15 successful=0
      282624        4096       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: 15131009-C114-4840-B53C-FEE30EC3A3F1
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: 33493AE9-55AD-E543-8BAE-C9806B72816B
                                  Attr: priority=0 tries=15 successful=0
       16449           1       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: 484ED029-82FA-5F45-B63B-79DCC131F45F
       86016       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 64DC98D4-174B-5C4A-B14F-B89A67343F40
       16450           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 0626AB85-4D5D-E144-B606-17DE20F37F56
       16451           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: ABB37F2E-18F9-A042-85EE-143EE853922A
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: FBC363CF-8486-7445-807B-7BB62EB5ACB8
      249856       32768      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: 5F80E349-F725-6147-91AD-6C44106C5813
    33554399          32          Sec GPT table
    33554431           1          Sec GPT header
root@T1008:~# mkfs.ext4 /dev/mmcblk0p3
mke2fs 1.42.8 (20-Jun-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
79360 inodes, 317440 blocks
15872 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=327155712
10 block groups
32768 blocks per group, 32768 fragments per group
7936 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

root@T1008:~# mkswap /dev/mmcblk0p1
Setting up swapspace version 1, size = 15364072 KiB
no label, UUID=f499dafe-02ab-4c5b-8729-c17026887730
root@T1008:~# gdisk /dev/mmcblk0
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 135130 sectors (66.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1         2826240        33554398   14.7 GiB    0700  STATE
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720         2826239   1.2 GiB     7F01  ROOT-A
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM

Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Command (? for help): d
Partition number (1-12): 1

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-33554398, default = 2826240) or {+-}size{KMGTP}: -2147M
Last sector (29157342-33554398, default = 33554398) or {+-}size{KMGTP}: -0K
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'

Command (? for help): p
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 26466232 sectors (12.6 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1        29157342        33554398   2.1 GiB     0700  Microsoft basic data
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720         2826239   1.2 GiB     7F01  ROOT-A
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM

Command (? for help): c
Partition number (1-12): 1
Enter name: STATE

Command (? for help): p
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 26466232 sectors (12.6 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1        29157342        33554398   2.1 GiB     0700  STATE
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720         2826239   1.2 GiB     7F01  ROOT-A
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/mmcblk0.
The operation has completed successfully.
root@T1008:~# mkswap /dev/mmcblk0p1
Setting up swapspace version 1, size = 2198524 KiB
no label, UUID=2ddb62d2-3d33-4e69-82cf-ef404114b851
root@T1008:~# gdisk /dev/mmcblk0
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 26466232 sectors (12.6 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1        29157342        33554398   2.1 GiB     0700  STATE
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720         2826239   1.2 GiB     7F01  ROOT-A
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM

Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Command (? for help): d 
Partition number (1-12): 3

Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-29157341, default = 286720) or {+-}size{KMGTP}: 286720
Last sector (286720-29157341, default = 29157341) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 7F01
Changed type of partition to 'ChromeOS root'

Command (? for help): p
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 135130 sectors (66.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1        29157342        33554398   2.1 GiB     0700  STATE
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720        29157341   13.8 GiB    7F01  ChromeOS root
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM

Command (? for help): c
Partition number (1-12): 3
Enter name: ROOT-A

Command (? for help): p
Disk /dev/mmcblk0: 33554432 sectors, 16.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C324F110-1D86-F348-8EF8-38F81DD82AA6
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 33554398
Partitions will be aligned on 1-sector boundaries
Total free space is 135130 sectors (66.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1        29157342        33554398   2.1 GiB     0700  STATE
   2           20480           53247   16.0 MiB    7F00  KERN-A
   3          286720        29157341   13.8 GiB    7F01  ROOT-A
   4           53248           86015   16.0 MiB    7F00  KERN-B
   5          282624          286719   2.0 MiB     7F01  ROOT-B
   6           16448           16448   512 bytes   7F00  KERN-C
   7           16449           16449   512 bytes   7F01  ROOT-C
   8           86016          118783   16.0 MiB    0700  OEM
   9           16450           16450   512 bytes   7F02  reserved
  10           16451           16451   512 bytes   7F02  reserved
  11              64           16447   8.0 MiB     FFFF  RWFW
  12          249856          282623   16.0 MiB    EF00  EFI-SYSTEM

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/mmcblk0.
The operation has completed successfully.
root@T1008:~# resize2fs /dev/mmcblk0p3
resize2fs 1.42.8 (20-Jun-2013)
Resizing the filesystem on /dev/sdb3 to 3608827 (4k) blocks.
The filesystem on /dev/mmcblk0p3 is now 3608827 blocks long.

root@T1008:~# cgpt show /dev/mmcblk0
       start        size    part  contents
           0           1          PMBR (Boot GUID: 5F80E349-F725-6147-91AD-6C44106C5813)
           1           1          Pri GPT header
           2          32          Pri GPT table
    29157342     4397057       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: 6A31DAE2-6E04-4B51-9F14-A7BFC47A8C2D
       20480       32768       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 213142CC-4F72-B843-9DDB-B1C5524BF811
                                  Attr: priority=15 tries=15 successful=1
      286720    28870622       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: 823F1CCE-F8EA-47BB-B7D1-63E254DF673F
       53248       32768       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: DB75DACA-EA06-8348-90D3-2457C29E4451
                                  Attr: priority=0 tries=15 successful=0
      282624        4096       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: 15131009-C114-4840-B53C-FEE30EC3A3F1
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: 33493AE9-55AD-E543-8BAE-C9806B72816B
                                  Attr: priority=0 tries=15 successful=0
       16449           1       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: 484ED029-82FA-5F45-B63B-79DCC131F45F
       86016       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 64DC98D4-174B-5C4A-B14F-B89A67343F40
       16450           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 0626AB85-4D5D-E144-B606-17DE20F37F56
       16451           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: ABB37F2E-18F9-A042-85EE-143EE853922A
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: FBC363CF-8486-7445-807B-7BB62EB5ACB8
      249856       32768      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: 5F80E349-F725-6147-91AD-6C44106C5813
    33554399          32          Sec GPT table
    33554431           1          Sec GPT header
root@T1008:~# cgpt add -i 2 -S 1 -T 15 -P 15 /dev/mmcblk0
root@T1008:~# cgpt add -i 4 -S 1 -T 15 -P 0 /dev/mmcblk0
root@T1008:~# cgpt add -i 6 -S 1 -T 15 -P 0 /dev/mmcblk0
root@T1008:~# cgpt add -i 1 -t data -l "STATE" /dev/mmcblk0
root@T1008:~# cgpt add -i 2 -t kernel -l "KERN-A" /dev/mmcblk0
root@T1008:~# cgpt add -i 3 -t rootfs -l "ROOT-A" /dev/mmcblk0
root@T1008:~# sync
root@T1008:~# cgpt show /dev/mmcblk0
       start        size    part  contents
           0           1          PMBR (Boot GUID: 5F80E349-F725-6147-91AD-6C44106C5813)
           1           1          Pri GPT header
           2          32          Pri GPT table
    29157342     4397057       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: 6A31DAE2-6E04-4B51-9F14-A7BFC47A8C2D
       20480       32768       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 213142CC-4F72-B843-9DDB-B1C5524BF811
                                  Attr: priority=15 tries=15 successful=1
      286720    28870622       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: 823F1CCE-F8EA-47BB-B7D1-63E254DF673F
       53248       32768       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: DB75DACA-EA06-8348-90D3-2457C29E4451
                                  Attr: priority=0 tries=15 successful=1
      282624        4096       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: 15131009-C114-4840-B53C-FEE30EC3A3F1
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: 33493AE9-55AD-E543-8BAE-C9806B72816B
                                  Attr: priority=0 tries=15 successful=1
       16449           1       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: 484ED029-82FA-5F45-B63B-79DCC131F45F
       86016       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 64DC98D4-174B-5C4A-B14F-B89A67343F40
       16450           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 0626AB85-4D5D-E144-B606-17DE20F37F56
       16451           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: ABB37F2E-18F9-A042-85EE-143EE853922A
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: FBC363CF-8486-7445-807B-7BB62EB5ACB8
      249856       32768      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: 5F80E349-F725-6147-91AD-6C44106C5813
    33554399          32          Sec GPT table
    33554431           1          Sec GPT header

Thanks so much for your response. I'm going to try it tomorrow after work. If you don't mind, let me ask you about Flash: I've read many posts on how to make it work with Chromium and PepperFlash from ChromeOS. Have you had the chance to try it?

 

TIA,

 

Ignacio

I do not use Flash anymore, even on i386 and AMD64. Therefore I have not tested it on my Chromebook under Debian. However from what I understand, you should be able to launch Chromium with the Pepper Flash Player plugin, like you suggest, without too much effort. You will need a copy of /opt/google/chrome/pepper/libpepflashplayer.so and /opt/google/chrome/pepper/pepper-flash.info from your original Chrome OS installation to make this work. If you don't have that installation anymore (presumably because you replaced it with Debian), you can also extract the files you need from the recovery image. A demonstration of the latter is below.

$ sudo kpartx -av chromeos_4319.96.0_daisy_recovery_stable-channel_mp-v3.bin 
add map loop0p1 (254:0): 0 4096 linear /dev/loop0 2826240
add map loop0p2 (254:1): 0 32768 linear /dev/loop0 20480
add map loop0p3 (254:2): 0 2539520 linear /dev/loop0 286720
add map loop0p4 (254:3): 0 32768 linear /dev/loop0 53248
add map loop0p5 (254:4): 0 4096 linear /dev/loop0 282624
add map loop0p6 (254:5): 0 1 linear /dev/loop0 16448
add map loop0p7 (254:6): 0 1 linear /dev/loop0 16449
add map loop0p8 (254:7): 0 32768 linear /dev/loop0 86016
add map loop0p9 (254:8): 0 1 linear /dev/loop0 16450
add map loop0p10 (254:9): 0 1 linear /dev/loop0 16451
add map loop0p11 (254:10): 0 16384 linear /dev/loop0 64
add map loop0p12 (254:11): 0 32768 linear /dev/loop0 249856
$ sudo cgpt show /dev/loop0
       start        size    part  contents
           0           1          PMBR (Boot GUID: 5F80E349-F725-6147-91AD-6C44106C5813)
           1           1          Pri GPT header
           2          32          Pri GPT table
     2826240        4096       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: 76AFDED6-459A-9340-98A7-5AF8BCCB06CB
       20480       32768       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 213142CC-4F72-B843-9DDB-B1C5524BF811
                                  Attr: priority=15 tries=15 successful=1
      286720     2539520       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: C860A2E2-176B-CF40-8053-37C409873F5C
       53248       32768       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: DB75DACA-EA06-8348-90D3-2457C29E4451
                                  Attr: priority=0 tries=15 successful=0
      282624        4096       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: 15131009-C114-4840-B53C-FEE30EC3A3F1
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: 33493AE9-55AD-E543-8BAE-C9806B72816B
                                  Attr: priority=0 tries=15 successful=0
       16449           1       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: 484ED029-82FA-5F45-B63B-79DCC131F45F
       86016       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 64DC98D4-174B-5C4A-B14F-B89A67343F40
       16450           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 0626AB85-4D5D-E144-B606-17DE20F37F56
       16451           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: ABB37F2E-18F9-A042-85EE-143EE853922A
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: FBC363CF-8486-7445-807B-7BB62EB5ACB8
      249856       32768      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: 5F80E349-F725-6147-91AD-6C44106C5813
     2863007          32          Sec GPT table
     2863039           1          Sec GPT header
$ sudo mount -t ext2 -o ro /dev/mapper/loop0p3 /mnt
$ ls -l /mnt/opt/google/chrome/pepper/
total 13284
lrwxrwxrwx 1 root root       47 Sep 12 20:11 libgoogletalkremoting.so -> /opt/google/talkplugin/libgoogletalkremoting.so
-rwxr-xr-x 1 root root   198404 Sep 12 19:24 libnetflixhelper.so
-rwxr-xr-x 1 root root 13368352 Sep 12 19:24 libpepflashplayer.so
lrwxrwxrwx 1 root root       41 Sep 12 20:11 libppgoogletalk.so -> /opt/google/talkplugin/libppgoogletalk.so
lrwxrwxrwx 1 root root       34 Sep 12 20:11 libppo1d.so -> /opt/google/talkplugin/libppo1d.so
lrwxrwxrwx 1 root root       40 Sep 12 20:10 libppo3dautoplugin.so -> /opt/google/o3d/libppgtpo3dautoplugin.so
-rw-r--r-- 1 root root      417 Sep 12 19:24 netflixhelper.info
-rw-r--r-- 1 root root      444 Sep 12 19:24 pepper-flash.info
$ sudo mkdir -p /opt/google/chrome
$ sudo cp -a /mnt/opt/google/chrome/pepper /opt/google/chrome/
$ sudo umount /mnt
$ sudo kpartx -dv chromeos_4319.96.0_daisy_recovery_stable-channel_mp-v3.bin 
del devmap : loop0p12
del devmap : loop0p11
del devmap : loop0p10
del devmap : loop0p9
del devmap : loop0p8
del devmap : loop0p7
del devmap : loop0p6
del devmap : loop0p5
del devmap : loop0p4
del devmap : loop0p3
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

If you manage to make Pepper Flash Player work in Chromium, I would be interested to see how you accomplished it. Please post your results below, pass or fail; they may guide someone else looking to accomplish the same thing.

Hi there. I'm right now in the middle of the installation but I'm presented with this error:

 

xserver-xorg-video-armsoc : Depende: xorg-video-abi-12 pero no es instalable

 

It looks like there's a dependency on one of your packages on a missing package in debian

 

Any sugggestions?

 

TIA,

 

Ignacio

First try installing was almost perfect. Besides the problem with the missing dependency mentioned in my previous post, I could install Debian. However, after booting up the computer I got a message in post saying that the ChromeOS was missing and I needed to reinstall it using my backup. I'm going to give it another try shortly.

 

Since my partition layout was different than yours I could not follow your instructions as you suggested. I could not recreate p3 as you instructed and I could not do a resizefs on p3. May that be the reason why the computer is complaining at boot-time?

 

TIA,

 

Ignacio

After restoring ChromeOS to its original state, I could follow your instructions and install it following your guidelines. I download installed from your repo the armsoc xorg driver using dpkg -i --force-depends, but I can't make X work. The log says:

 

module ABI major version (12) doesn't match the server's version (14)

 

Any help, please?

 

TIA,

 

Ignacio

After restoring ChromeOS to its original state, I could follow your instructions and install it following your guidelines. I download installed from your repo the armsoc xorg driver using dpkg -i --force-depends, but I can't make X work. The log says:

 

module ABI major version (12) doesn't match the server's version (14)

 

Any help, please?

 

TIA,

 

Ignacio

 

The X server in Jessie has been updated since I built that package. The Xorg ABI changes with every major release, so each driver built against it needs to be updated every time the Xorg core is updated to a major new version. I just updated xf86-video-armsoc (which builds the xserver-xorg-video-armsoc binary package) to the latest upstream version, patched it for the XServer 1.14 ABI, built new binaries, and uploaded it to my repository. You should be able to install the package now. Let me know if you run into any other such regressions.

I have applied your update, and it works now. Do you think it would be wise to put the xserver packages on hold to prevent updates unless there's and update on your driver? I believe there's a way to create binary dependencies in deb packages so, in this case, if they were declared in your driver, no updates to xserver would be applies until there's a new version of your driver. I haven't done that, but I could investigate it for you if you want.

 

Thanks so much for your great work.

 

Regards,

 

Ignacio

First thing I noticed after login is that there seems to be no HW accelerated graphics. Playing video is quite painful, I haven't even tried setting pepperflash. Are you running it under the same conditions?

 

Thanks,

 

Ignacio

I have applied your update, and it works now. Do you think it would be wise to put the xserver packages on hold to prevent updates unless there's and update on your driver? I believe there's a way to create binary dependencies in deb packages so, in this case, if they were declared in your driver, no updates to xserver would be applies until there's a new version of your driver. I haven't done that, but I could investigate it for you if you want.

 

Thanks so much for your great work.

 

Regards,

 

Ignacio

 

I do not recommend putting xserver-xorg-core on hold. Xorg 1.15 will not be released, not to mention packaged, until early next year, and X receives security updates often enough to make unequivocally sticking with an older version potentially dangerous. I will update xf86-video-armsoc again when new versions of X are released. Although I had to make some minor code changes which have not yet landed upstream in this case, next time it will likely be as simple as recompiling the driver against the new Xorg ABI. APT (apt-get, aptitude, or your other front-end of choice) will give you the option to either remove the broken driver or stay upgrading the X server until the conflict is resolved when Xorg 1.15 is eventually pushed to Jessie. Therefore you can avoid breaking X at that point by not upgrading it for a few days until I upload the new driver and the conflict is automatically resolved.

 

First thing I noticed after login is that there seems to be no HW accelerated graphics. Playing video is quite painful, I haven't even tried setting pepperflash. Are you running it under the same conditions?

 

Thanks,

 

Ignacio

 

Graphics are accelerated, but you only have partial 3D acceleration. Unfortunately there is no support for the Mali T604 in Mesa, and ARM's proprietary DRI library (at least the one that ships with the Chromebook) only partially supports 3D acceleration. Chrome OS works around this limitation by drawing everything in an OpenGL window using the completely functional OpenGLES acceleration. If you are interested in more details, read Ubuntu Bug #1085596.

Or just save yourself the hassle and get "Chrubuntu" :)

 

Although ChrUbuntu is an easy way to install Ubuntu natively on a Chromebook, it is not equivalent to my method. The principal difference is that ChrUbuntu is designed to install Ubuntu onto an external device (such as a flash drive or an SD card) so it can be dual-booted with Chrome OS, whereas my tutorial details how to install Debian (although it could just as easily be applied to Ubuntu) to the Chromebook's internal SSD, completely replacing Chrome OS. As far as I know, the tutorial I posted in the opening post is the only one of its kind. The method is not particularly easy, and could probably be automated similarly to ChrUbuntu. Therefore it is not intended for the casual user. Its primary advantage is that the OS will run much faster from the internal SSD than from a flash drive or SD card. However, like you noted, there are some serious downsides to consider.

I do not recommend putting xserver-xorg-core on hold. Xorg 1.15 will not be released, not to mention packaged, until early next year, and X receives security updates often enough to make unequivocally sticking with an older version potentially dangerous. I will update xf86-video-armsoc again when new versions of X are released. Although I had to make some minor code changes which have not yet landed upstream in this case, next time it will likely be as simple as recompiling the driver against the new Xorg ABI. APT (apt-get, aptitude, or your other front-end of choice) will give you the option to either remove the broken driver or stay upgrading the X server until the conflict is resolved when Xorg 1.15 is eventually pushed to Jessie. Therefore you can avoid breaking X at that point by not upgrading it for a few days until I upload the new driver and the conflict is automatically resolved.

 

 

Graphics are accelerated, but you only have partial 3D acceleration. Unfortunately there is no support for the Mali T604 in Mesa, and ARM's proprietary DRI library (at least the one that ships with the Chromebook) only partially supports 3D acceleration. Chrome OS works around this limitation by drawing everything in an OpenGL window using the completely functional OpenGLES acceleration. If you are interested in more details, read Ubuntu Bug #1085596.

 

 

Ok. Thanks so much for your assistance. Debian runs quite fine, and your guidelines are impressive. Although its performance is not superb, it is usable, and it is more flexible than running ChromeOS.

 

Thanks again,

 

Ignacio

  • 4 weeks later...

hi xorangekiller

 

i have a problem with a "wget -q https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/keys/xorangekiller.asc -o- | apt-key add -" line

 

i get "gpg: no valid OpenPGP data found" !!

 

The GPG key I use to sign my repository has not changed, nor has its location relative to the repository. However, I notice that the command you quoted is not the same as the one that appears in my tutorial. You replaced the uppercase "O" at the end of the wget command line with a lowercase "o". Since wget options are case-sensitive, as is true of most utilities, it is not surprising that the command you quoted does not work. You are told that there is no OpenPGP data to be found because that is exactly the case. Try the following command (which is the same as the one which appears in the tutorial in my opening post) instead.

# wget -q https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/keys/xorangekiller.asc -O- | apt-key add -

i've try gpg --import xorangekiller.asc and it seemed to work but I get errors during apt-get update

 

Although you successfully imported my public key into your GPG keyring using gpg --import, that is not relevant to APT. APT keeps its own keys in /etc/apt/trusted.gpg and /etc/apt/trusted.gpg.d. Therefore apt-get is not able to verify the signing key of my repository in your case because APT does not have my public key. If you wanted to isolate downloading the key and adding it to your APT keyring into separate commands, you could do so as follows:

$ wget https://dl.dropboxusercontent.com/u/62647756/repos/apt/debian/keys/xorangekiller.asc
# apt-key add xorangekiller.asc
$ rm xorangekiller.asc

It sounds like apt-key added the repo key to your APT keyring this time. The only thing it is supposed to print after a key has been successfully imported is "OK".

 

That said, I have absolutely no idea how to interpret you new problem. I will try to help you, but you need to be precise! Based on the resolution of your last issue, my advice is to double-check that you typed everything correctly. This is Linux. Case matters. Spacing matters. My guide has been tested numerous time. It is unlikely that it has any major flaws in its current incarnation. (Although software is revved, and I am only human; so I'm not so foolish as to claim my guide is absolutely bulletproof.)

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

    • No registered users viewing this page.
  • Posts

    • Cheers everyone for the replies. It's been very useful. 👍
    • Compared to the 7735HS it is around 25-30% slower in multi-threaded tasks (according to Google search) I did a review of the 7735HS Beelink SER6 Max in 2023, but thinking about it, it's not comparable to the 7730U. For the example you gave about how it will be used, the 7730U is actually an excellent choice for its power and battery efficiency.
    • Yes guys I know we have a memory and storage price gouging thanks to AI datacenters, so basically you are complaining when these crazy prices get discounts. It all starts to sound like the price of gas and a loaf of bread "was so much cheaper ten years ago!" Go wait until 2030 or whenever this BS ends and skip commenting then? Damned if ya do, damned if ya don't... 🙄
    • 7 Days: Windows 11 turns five, Ford made a mistake, and Starlink plans direct mobile service by Aditya Tiwari 7 Days is a weekly roundup of picks of what's been happening in the world of technology - written with a dash of humor, a hint of exasperation, and an endless supply of (black) coffee. This week's highlights include Apple's $4 billion class-action lawsuit, a smartphone with a 14,000 mAh battery, Google catching up with Anthropic, and the Steam Summer Sale 2026. Let's get started. You can check out the recent issues of the 7 Days weekly roundup. Windows 11 turns five Microsoft's Windows 11 operating system completed five years of existence on June 24 this week. According to the latest data, the controversial operating system now runs on almost 72% of Windows PCs worldwide. The launch of Windows 11 had several dramatic twists and an entire preview build leaked ahead of launch. Ford made a mistake Many would agree that one of the biggest mistakes the automobile industry made was surrendering to the giant touchscreens and removing physical buttons. However, Ford made even more. The company executives said they made a mistake by replacing human engineers with AI. Ford admitted that AI couldn't replace experienced engineers and the company is rehiring veterans to improve quality and cut recall costs. Starlink mobile service Elon Musk's SpaceX wants to use its massive constellation of satellites to power your phone's network. The company is reportedly considering building a terrestrial mobile network to complement Starlink’s satellite coverage and planning to sell mobile phone plans directly to customers in the US as part of a wider expansion of Starlink. Our Features Our coffee-powered team published a platter of editorials, opinion posts, hands-on experiences, and guides. Check them out: Hey Google, these are the Gemini features I want in 2026 You've tried DuckDuckGo and Brave Search, now get serious with SearXNG Why Delta Chat is the best decentralized messenger you have probably never tried We check out the SKG PS700 Neck Massager SKG Hand Massager with Heat OS500 hands on Hands-on with BOOX Tappy: cute little reading accessory Hands-on with the ProtoArc EM25: Affordable ergonomic mouse that focuses on the right things Hands-on with iFlyTek AINote 2 E-Ink tablet: insanely thin and smart This week in software news Catch up on some of the latest software news updates that arrived throughout the week: Firefox 152.02: The latest browser update brought fixes for performance, translation, and cloud storage services. It addressed problems with localization, playback issues with certain MP4 files, and performance issues on websites that perform multiple encryption operations simultaneously. Ubuntu Livepatch: Canonical's zero-downtime service Livepatch arrived on Arm64 devices running Ubuntu Core 26 and Ubuntu 26.04 LTS. Livepatch allows users to apply important kernel updates without any service interruption or rebooting. AMD 26.6.2 driver: The new driver version for Radeon hardware owners brought FSR 4.1 upscaling tech to an entire generation of its products: the RX 7000 series. However, the 26.6.2 FSR driver flew dark clouds over users, breaking many Windows PCs and causing a yellow bang or other launch failures on Windows 10. AMD later pushed the 26.6.3 Hotfix update to fix the issues. Goodbye Notion email: It's been a little over a year since the AI-powered email client launched. The company has announced its shutdown, which will take effect on September 22, and said it doesn't see the point in maintaining a frontend email client when people are moving towards automation. Ventoy version 1.1.14: The biggest change in the Rufus alternative is an updated Secure Boot shim file to resolve the UEFI CA 2023 issue, a compatibility problem that affected Secure Boot environments on some systems. This week in hardware news Image: Valve Catch up on some of the latest software news updates that arrived throughout the week: 14,000 mAh battery: Yes, that's something that iPhone users can only dream of. But a Chinese company is reportedly developing a smartphone with a 14,000mAh battery. If it ever sees daylight, it would be the largest battery ever on a smartphone, possibly offering a week of backup on a single charge. Steam Machine prices: Valve finally confirmed the Steam Machine's pricing. Starting at $1,049 for the 512GB option, storage and the included controller are the biggest differences among the four variants presented. Xbox just got more expensive: Rising costs of storage and memory prompted Microsoft to raise prices. Xbox Series X|S models wth 512GB storage will cost $100 extra, and 1TB models will cost $150 extra. However, the Redmond giant discounted the 2TB models. New NVIDIA supercomputers: The company announced plans to deploy 35 high-performance (HPC) AI supercomputers across Europe this year, primarily at national supercomputer centers, AI factories, and research institutes. Fast fast memory: Samsung built the UFS 5.0 storage solution, which pushes the data transfer speeds to 10.8 GB/s on mobile devices. It can open doors for faster local AI performance, which otherwise doesn't look promising under the current scenario. Custom chips for TikTok: Qualcomm is reportedly in talks with ByteDance to build custom video chips optimized for its massive data center workloads. ByteDance needs hardware that can help it ingest, process, and serve billions of short-form videos daily. OpenAI Jalapeño: The AI giant announced its first custom-designed AI chip developed in partnership with Broadcom. Jalapeño is designed specifically for large language model inference and is the first product from a multi-generation compute platform being developed by OpenAI. Galaxy A27 5G: The new mid-range smartphone from Samsung arrived with a platter of updates over A25 5G, including a 120Hz refresh rate, Infinity-O punch-hole camera design, expanded AI features, and more. Qualcomm takes on NVIDIA: The chipmaker baked the new Dragonfly CPU, High Bandwidth Compute technology, and AI chips to challenge NVIDIA in the AI data center market. Qualcomm said its new lineup improved per-watt performance, token throughput, and total cost of ownership for AI data centers. IBM goes sub-1nm: The company reached a semiconductor milestone by announcing the world's first sub-1-nanometer chip technology, based on a 0.7nm (7-angstrom) node. It can pack nearly 100 billion transistors onto a chip the size of a fingernail. This week in Google News Image: Google Catch up on some of the latest Google news updates that arrived throughout the week: What to expect from the Pixel 11 series: The upcoming lineup is expected to feature four different variants and a price hike due to the global memory shortage. Read our detailed coverage to know about the expected Pixel 11 specs. Stopping Google: The Free Software Foundation Europe urged the European Commission to stop Google from silently reinstalling AI models and requiring registration. Users should be able to fully uninstall AI-based features from Android devices and access interoperability features. Chasing Anthropic: The Claude-maker is making new strides every day in the AI world, but the search giant is struggling to catch up. Google is said to be reshuffling its AI coding "strike team" it created roughly about two months ago, turning it into a broader model-training group amid talent losses at DeepMind. New Google Play billing: Google has faced a long legal battle with Epic Games, and the search giant is rolling out a redesigned Play Store billing and fee structure. Available in the US, UK, and the European Economic Area, it will take effect on June 30. Error-free Sheets? A new feature in Google Sheets allows Gemini to inspect formula errors and apply corrections directly in the spreadsheet. Google said the new feature can handle pretty much everything from basic arithmetic to very complex calculations. Breeze through airports: Google Wallet became the first digital wallet to integrate with TSA PreCheck Touchless ID, a program that enables travelers to move through airport security checkpoints using facial recognition instead of a physical ID or boarding pass. Built-in computer control: Gemini 3.5 Flash got a built-in tool called Computer Use, which allows developers to build agents that navigate browsers, mobile interfaces, and desktop applications. Google Finance: The redesigned platform is now out of beta. Google has added several new features, including portfolio tracking, scheduled market briefings, and a dedicated Android app. An iOS app is planned for later in 2026. This week in Apple News Image: Apple Catch up on some of the latest Apple news updates that arrived throughout the week: Trade secrets reportedly exposed: Apple's manufacturing partner in India, Tata Electronics, confirmed a cybersecurity attack on its systems that may have exposed trade secrets of Apple and Tesla. Hackers reportedly stole up to 630 GB of data and posted up to 200,000 files on the dark web. Grab your payout: Apple is facing a class-action lawsuit in the UK and might end up paying $4 billion (£3 billion) if it loses. The iPhone-maker has been accused of trapping users in iCloud by restricting rivals from fully accessing iOS. The tribunal recently set a full trial date for October 2028. iOS 27 Beta 2: Apple's latest iPhone update is moving forward, and a new beta was pushed this week. While iOS 27 Beta 2 for developers pushed several bug fixes across the system, the AirPort Utility was deprecated; it's no longer available to new users. Price hike: Just like others, Apple has raised prices of several MacBook and iPad models, including the MacBook Neo, which now starts at $699. This comes after reports that this year's iPhone will also become expensive. Second-gen iPhone Fold: While the world is desperate to see Apple's foldable iPhone, leakers have started to talk about its second generation. Apple is expected to launch a successor in Fall 2027, featuring a wider folding display while reusing the same screen found in the first generation. The search for memory: Apple is reportedly looking at blacklisted Chinese companies amid rising memory chip prices. The company is seeking clearance from the Trump administration to purchase memory from ChangXin Memory Technologies (CXMT). This week in Meta news Image: Meta Catch up on some of the latest Meta, WhatsApp, and Instagram updates that arrived throughout the week: WhatsApp gets a new final boss: Mark Zuckerberg announced that CRED's Kunal Shah will become the next global head of WhatsApp, as Will Cathcart steps down and moves to a new role at Meta. The social media giant invested money in CRED through a Series H funding round. AI glasses in 26 styles: A new line of Meta Glasses launched in partnership with EssilorLuxottica. Starting at $299, it comes in more than two dozen styles across different colors, lenses, and frames. More ways to doomscroll: Instagram for TV is now available on Samsung smart TVs launched in 2020 and later years. The company also announced that it's testing several new features on Instagram for TV, bringing it closer to YouTube and Netflix. This week in AI news Image: Microsoft Catch up on the latest artificial intelligence news updates that arrived throughout the week: Water-saving data center: Microsoft is building a gas-powered AI data center with a capacity of 2 gigawatts. The company will deploy a closed-loop cooling system, saying that its total lifecycle water use will be "only a fraction of that consumed annually by a typical fast-food restaurant.” OpenAI beats Claude Mythos: GPT-5.5-Cyber got a limited release for verified defenders. It scored 85.6% on CyberGym, compared with 81.8% for GPT-5.5 and 83.8% for Claude Mythos 5. The AI giant also announced a limited preview of its new GPT-5.6 model series, whose flagship model, GPT-5.6 Sol, is targeted at demanding reasoning and agentic workloads. Proceed with caution: The Trump administration instructed OpenAI to limit the distribution of GPT-5.6 to a small group of government-approved partners rather than the general public, as has happened in the past. Claude Tag: Anthropic launched its new AI teammate for Slack, enabling teams to delegate tasks to Claude directly within Slack channels. What makes it different is that it's designed to operate as a shared assistant for an entire team rather than a single user. Challenging US dominance: The UK government has funded £60 million ($70 million) to Oxford and UCL to keep the country in the AI race by building open-source, low-hardware alternatives. The two organizations will share the money over six years. Paying for AI development: One cost is the loss of human jobs. Oracle laid off about 21,000 employees (13% of its workforce) amid increasing AI adoption. The software giant said that AI advancement and adoption "may continue to result in reductions to our workforce." GitHub strips features: It removed the ability to manually detect an AI model from its Copilot Free and Student plans. In other words, its automatic routing system is the only way to choose a model. Are you a copycat? Anthropic accused Alibaba of creating about 25,000 fraudulent accounts to copy Claude's capabilities at scale. It told US lawmakers that operators linked to Alibaba generated 28.8 million exchanges with Claude between April 22 and June 5, 2026. Reserve my memory: The semiconductor company Micron revealed that AI companies are spending billions to lock up its memory years in advance. Its customers have locked in $22 billion worth of memory supply commitments. Another AI battle: A publisher group that collectively owns 400 newspapers sued OpenAI and Microsoft for scraping their content to build AI chatbots such as ChatGPT and Copilot without compensation. Anthropic AI ban: The US government partially reversed the Anthropic AI ban, allowing it to restore Claude Mythos 5. However, it can only be deployed for a limited set of US organizations that operate and defend critical infrastructure. This week in Microsoft News In some of the hottest stories of the week: Windows 10 quietly gained a year of support and updates, Windows 11 KB5095093 released with a long list of features, and Windows 11 26H2 is finally getting the ability to disable web search results in Windows 11 Search. You can check out Taras's freshly baked Microsoft Weekly roundup to catch up on all the interesting stories this week. This week in science news Image by Pascal Küffer via Pexels Catch up on some of the latest science and out-of-this-world updates that arrived throughout the week: 13 billion-year-old secret: Scientists found that the universe's first molecule (helium hyride) reacted with hydrogen much faster in cold temperatures than previously believed. It's a new breakthrough that changes our understanding of early star formation. Cosmic Living Fossil: Astronomers found CR3, a surprisingly pristine 11.5-billion-year-old galaxy dubbed a "living fossil." It suggests the universe's first generation of stars formed much later than previously assumed. Einstein's 100-year-old theory: Thanks to relativity, researchers calculated that clocks on Mars tick 477 microseconds faster per day than on Earth. This minute gravitational difference is crucial for synchronizing future interplanetary space missions. Don't panic: NASA's James Webb Telescope finally eliminated the threat of asteroid 2024 YR4 striking the moon in 2032. The rocky giant will give us a safe fly-by without causing any harm. This week in gaming? The latest issue of Pulasthi's Weekend PC Game Deals curates several exciting games on sale this week. RollerCoaster Tycoon 3 Complete Edition and Voidwrought have replaced the old titles in this week's Epic Games Store giveaway. For Xbox Free Play Days, the new titles include House Flipper 2, Blades of Fire, and Assetto Corsa Competizione. Steam Summer Sale 2026 kicked off with discounts for everything from the newest games and retro gems to all sorts of DLC packs, until July 9. Meanwhile, NVIDIA GeForce NOW added support for several new titles, including Dark Scrolls, SAND: Raiders of Sophie, and EMPULSE. That said, here are some more stories from the gaming world: Age of Empires Mobile comes to PC, here's how to carry over progress from your phone Xbox Insiders get Xbox 360 achievements and Gamertag character upgrades Grand Theft Auto VI pricing revealed alongside Ultimate Edition and pre-loading details Sony announces Bungie layoffs that will affect "significant number of employees" From the review corner This week, Steven published a review of the TerraMaster F4-425 Pro AI-powered NAS, featuring an all-metal exterior on the lines of the four-bay F4-425 series. Powered by the octa-core Intel Core N350, the TerraMaster F4-425 Pro is highly energy-efficient, operates quietly, and offers three M.2 slots. On the flip side, OpenClaw support requires removing security hardening (SPC), AI requires a paid subscription, the software feels like a beta, and the rubber feet constantly come unstuck. ZimaBoard 2 1664 Starter Kit Another NAS setup reviewed this week is the ZimaBoard 2 by IceWhale Technology. It comes in a small footprint with great modern hardware through a combo of Intel N150 and DDR5 memory support. On the downside, the memory is not upgradeable, ZimaOS is a bit barebones, factory reset requires USB flashing, and there is no automatic backup via the mobile app. Synology's BeeCamera software Christopher wrote his review of the software that powers BeeCamera Plus and said "the BeeCamera app is a great way to add private home monitoring to your network but there are some limitations." It's free with an easy setup process, fast response time, and good AI and detection features. However, there is no desktop version; it only works with Synology cameras, some configurations are difficult to set up on a phone, and it lacks the features of the surveillance station. More price drops! We got you covered with some hot tech deals all week. For some reason, if you missed out on a great discount, here is a summary of some recent deals that are still alive: Onkyo Dolby Atmos AV receivers are really solid deals 4TB TEAMGROUP MP44Q, 2TB T-Force G50, and 2TB WD My Passport SSDs drop to great prices Edifier S3000MKII hi-fi audiophile grade bookshelf speaker is at its lowest price now The best controller for XBOX and PC is down to the lowest price Limited time Prime Day deal cuts price of this Hisense 65" 4K smart TV in half To view all of our recent deals, click here. So, these were some of the biggest tech news and other updates from this week. There will be more issues of our 7 Days series in the coming weeks and months, so stay tuned. You can also support Neowin by registering for a free member account or subscribing to extra member benefits, along with an ad-free tier option. Have a great weekend!
  • Recent Achievements

    • Reacting Well
      JuvenileDelinquent earned a badge
      Reacting Well
    • One Month Later
      Excellence2025 earned a badge
      One Month Later
    • Week One Done
      Excellence2025 earned a badge
      Week One Done
    • Week One Done
      flexorcist earned a badge
      Week One Done
    • Week One Done
      Woland13 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      503
    2. 2
      +Edouard
      195
    3. 3
      PsYcHoKiLLa
      151
    4. 4
      Steven P.
      72
    5. 5
      FloatingFatMan
      68
  • Tell a friend

    Love Neowin? Tell a friend!