[linux] Omninas om zeep? u-boot achtige prompt
Frans van Berckel
fberckel op xs4all.nl
Vr Jul 13 11:24:01 CEST 2018
Hoi Hans,
On Fri, 2018-07-13 at 09:06 +0200, Paul Slootman wrote:
> On Thu 12 Jul 2018, paai wrote:
> >
> > Wat ik niet snap is dat busybox dan ook uit de compressed image is
> > verdwenen... of heeft hij er nooit ingezeten?
>
> Welke compressed image? Denk je dat er een initrd o.i.d is? Dat is
> volgens mij niet gebruikelijk op dit soort "embedded" devices.
Die is er wel, maar bij dit soort u-boot devices verstop achter een 64
byte uImage header. Let's check it out. Zoals Geert al gevonden had.
De kernel uImage: u-boot legacy uImage, Linux-2.6.31.14_7821,
Linux/ARM, OS Kernel Image (Not compressed), 3066344 bytes, Wed Jun 18
05:54:45 2014, Load Address: 0x60008000, Entry Point: 0x60008000,
Header CRC: 0xC29F0BC0, Data CRC: 0x14587198
En de rdimg.gz RAMDisk: u-boot legacy uImage, , Linux/ARM, RAMDisk
Image (gzip), 2287245 bytes, Wed Jun 18 07:51:04 2014, Load Address:
0x61000000, Entry Point: 0x61000000, Header CRC: 0x924D7088, Data CRC:
0xD2298BD5
Wat zit daar precies in?
# mkdir ramdisk
# cd ramdisk
# cp ../rdimg.gz uramdisk.img
# binwalk uramdisk.img
DECIMAL HEXADECIMAL DESCRIPTION
---------------------------------------------------------------------
-----------
0 0x0 uImage header, header size: 64 bytes, header CRC: 0x924D7088,
created: 2014-06-18 05:51:04, image size: 2287245 bytes, Data Address:
0x61000000, Entry Point: 0x61000000, data CRC: 0xD2298BD5, OS: Linux,
CPU: ARM, image type: RAMDisk Image, compression type: gzip, image
name: ""
64 0x40 gzip compressed data, maximum compression, from Unix, NULL date
(1970-01-01 00:00:00)
Eerst die 64 byte uImage header maar eens verwijderen.
# dd bs=1 skip=64 if=uramdisk.img of=uramdisk-no-header.img
2287245+0 records in
2287245+0 records out
2287245 bytes (2,3 MB, 2,2 MiB) copied, 7,94472 s, 288 kB/s
Wat hebben we nu?
# file uramdisk-no-header.img
uramdisk-no-header.img: gzip compressed data, max compression, from
Unix
# zcat uramdisk-no-header.img > uramdisk-uncompressed.img
# file uramdisk-uncompressed.img
uramdisk-uncompressed.img: Linux rev 1.0 ext2 filesystem data,
UUID=bbf32bfc-e0bc-4624-959e-d0bb5c6243f5
Dat heeft wel iets van een ext2 disk image, met een uuid label?
# fdisk -l uramdisk-uncompressed.img
Disk uramdisk-uncompressed.img: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Die moet je volgens mij gewoon kunnen mounten?
# mount uramdisk-uncompressed.img /mnt
# cd /mnt
# ls -l
total 39
drwxr-xr-x 2 root root 1024 jun 18 2014 bin
drwxr-sr-x 3 root root 4096 jun 18 2014 dev
drwxrwxrwx 11 root root 2048 jun 18 2014 etc
drwxrwxrwx 2 root root 1024 jun 18 2014 home
drwxr-xr-x 2 root root 1024 jun 18 2014 initrd
drwxr-xr-x 4 root root 1024 jun 18 2014 lib
-rwxr--r-- 1 root root 10080 jun 18 2014 linuxrc
drwx------ 2 root root 12288 jun 18 2014 lost+found
drwxr-xr-x 2 root root 1024 jun 18 2014 mnt
drwxr-xr-x 2 root root 1024 jun 18 2014 proc
drwxrwxrwx 2 root root 1024 jun 18 2014 root
drwxr-xr-x 2 root root 1024 jun 18 2014 sbin
drwxrwxrwx 2 root root 1024 jun 18 2014 tmp
drwxr-xr-x 5 root root 1024 jun 18 2014 usr
drwxr-xr-x 7 root root 1024 jun 18 2014 var
Waar gaat het ons om?
# ls bin/busybox -l
-rwxr-xr-x 1 root root 457828 jun 18 2014 bin/busybox
En wat zit er in linuxrc, het init script voor de initrd?
# cp linuxrc linuxrc.txt ; chmod 444 linuxrc.txt. Attachment.
Ze werkt dat dus bij u-boot. Reverse engineering, love it.
Met vriendelijke groet,
--
Frans van Berckel
Media Engineer / Linux Master
LinkedIn: https://www.linkedin.com/in/fransvberckel/
Meer informatie over de Linux
maillijst