Replacing Chrome OS with Debian Jessie on the Samsung Series 3 Chromebook


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
Link to comment
Share on other sites

  • 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..

 

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).

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 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" !!

Link to comment
Share on other sites

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
Link to comment
Share on other sites

actually, I had not thought about the capital o :) . the key is imported. at the end of the command it says "ok", by cons in the update, I still have errors on the deposit "unstable".

Link to comment
Share on other sites

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.)

Link to comment
Share on other sites

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

    • No registered users viewing this page.