[linux] Omninas om zeep? u-boot achtige prompt

paai j.j.paijmans op gmail.com
Vr Jul 13 14:45:10 CEST 2018



On 13-07-18 11:24, Frans van Berckel wrote:
> 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,
>

Hamvraag: hoe krijg ik die busybox terug op de SD zonder een busybox om 
ls en cp te doen?
?





Meer informatie over de Linux maillijst