summaryrefslogtreecommitdiff
path: root/md/writeup/devices/samsung_xe303c12.md
blob: c61147c1381edb3b3555e4a307b2892b4a10e4fb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# SAMSUNG xe303c12

## Hardware


| Hardware | Model |
| --- | --- |
| CPU                     | Samsung Exynos 5250 AEON  | 
| eMMC                    | SanDisk SDIN7DU2-16G NAND Flash |
| RAM                     | DDR3L-1600 , 8xELPIDA J2108EDBG-GN-F (2Gbx8) |
| Power Controller        | MAX 77686 EWE 1237 |
| PMU                     | TPS65090 TI 291 |
| Embeded Controler       | STM32F100R8 |
| Trusted platform module | Infineon SLB9635 |
| SPI Flash               | Winbond 25Q32DSWIG |
| WiFi/Bluetooth          | Murata SS2907002 |
| PCI clock               | PI6C557-03 |
| Audio codec             | MAX98095 | 


## Booting Linux

_This is chapter copied from [Source](https://archlinuxarm.org/platforms/armv7/samsung/samsung-chromebook)_

### Switch to developer mode

1. Turn off the laptop.
2. To invoke Recovery mode, you hold down the ESC and Refresh keys and poke the 
Power button. 
3. At the Recovery screen press Ctrl-D (there's no prompt - you have 
to know to do it). 
4. Confirm switching to developer mode by pressing enter, 
and the laptop will reboot and reset the system. This takes about 15-20 minutes. 

_Note:_ After enabling developer mode, you will need to press Ctrl-D each time 
you boot, or wait 30 seconds to continue booting.

### Enable booting from external storage

1. After booting into developer mode, hold Ctrl and Alt and poke the T key. This will open up the crosh shell.
2. Type shell to get into a bash shell.
3. Type sudo su to become root.
4. Then type this to enable USB booting:
```text
    crossystem dev_boot_usb=1 dev_boot_signed_only=0
```
5. Reboot the system to allow the change to take effect. 

### Create a root USB or SD for dual booting

These instructions are written for installing to a USB drive with the sda device, assuming no other USB drives are plugged in. For an SD card, click here to magically adjust the instructions for the mmcblk1 device that an SD card will register as.

1. Get a root shell as described in the previous section.
2. Since ChromeOS will automatically mount any partitions it finds, unmount everything now:
```sh
umount /dev/sda*
```
3. Start fdisk to create a GPT partition table:
```sh
fdisk /dev/sda
```
4. At the fdisk prompt:  
4.1. Type g. This will create a new empty GPT partition table.  
4.2. Write the partition table and exit by typing w.  

5. Partition the micro SD card:
```sh
cgpt create /dev/sda
cgpt add -i 1 -t kernel -b 8192 -s 32768 -l Kernel -S 1 -T 5 -P 10 /dev/sda
```
6. To create the rootfs partition, we first need to calculate how big to make the partition using information from cgpt show. Look for the number under the start column for Sec GPT table which is 15633375 in this example:
```text
    localhost / # cgpt show /dev/sda
           start        size    part  contents
               0           1          PMBR
               1           1          Pri GPT header
            8192       32768      1   Label: "Kernel"
                                      Type: ChromeOS kernel
                                      UUID: E3DA8325-83E1-2C43-BA9D-8B29EFFA5BC4
                                      Attr: priority=10 tries=5 successful=1

        15633375          32          Sec GPT table
        15633407           1          Sec GPT header
```
7.  Replace the xxxxx string in the following command with that number to create the root partition:
```sh
cgpt add -i 2 -t data -b 40960 -s `expr xxxxx - 40960` -l Root /dev/sda
```
8. Tell the system to refresh what it knows about the disk partitions:
```sh
sfdisk -R /dev/sda
```
9. Format the root partition:
```sh
mkfs.ext4 /dev/sda2
```
10. Download and extract rootfs tarball:
```sh
cd /tmp
wget http://archlinuxarm.org/os/ArchLinuxARM-peach-latest.tar.gz
mkdir root
mount /dev/sda2 root
tar -xf ArchLinuxARM-peach-latest.tar.gz -C root
```
11. Flash the kernel to the kernel partition:
```sh
dd if=root/boot/vmlinux.kpart of=/dev/sda1
```
12. Unmount the root partition:
```sh
umount root
sync
```
13. Reboot the computer.
14. At the splash screen, instead of pressing Ctrl-D to go to CromeOS, press Ctrl-U to boot to the external drive.
15. After logging in as root (password is "root"), you can connect to a wireless network by running:
```sh
wifi-menu
```

### Enable debuging mode

There is possible to disable rootfs protection and even change files in such 
directories as __/etc__. Download this tool [Recovery utility](https://chrome.google.com/webstore/detail/chromebook-recovery-utili/jndclpdbaamdhonoechobihbbiimdgai?hl=en)
create usb/sd with recover image. Then boot to restore your chromebook and 
while setting up choose debuging mode.

### Disabling updates

As with newer version ChromeOS becomes less usable and slower here is option
to disable update service.

```
initctl stop update-engine
```

### Recovery mode

Press __ESC__ + __Refresh buttom__ and then press __Power button__

## Links

1. https://archlinuxarm.org/platforms/armv7/samsung/samsung-chromebook
2. https://www.ifixit.com/Teardown/Samsung+Chromebook+Series+3+Teardown/12225
3. http://www.slideshare.net/jjwu6266/introducing-samsung-chromebookxe303
4. http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00251732.pdf
5. http://www.infineon.com/cms/en/about-infineon/press/press-releases/2009/INFCCS200912-015.htm
6. https://www.pericom.com/assets/Datasheets/PI6C557-03.pdf
7. https://datasheets.maximintegrated.com/en/ds/MAX98095.pdf
8. https://chrome.google.com/webstore/detail/chromebook-recovery-utili/jndclpdbaamdhonoechobihbbiimdgai?hl=en
9. https://www.reddit.com/r/chromeos/comments/3t96gw/how_to_stop_chromebook_from_updating/