iPXE discussion forum
android-x86 pxe boot - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: android-x86 pxe boot (/showthread.php?tid=12586)



android-x86 pxe boot - ayx - 2018-07-08 20:31

Hello all,
this is my first post , i am badly in need for help Confused

I want to network boot android-x86 using iPXE. So far i have done the following

1. i have recompiled the android kernel adding nfs , pnp, ethernet , sunrpc etc related supports.
2. Built the final image successfully
3. tested the ISO in virtual box by live cd mode . it works okay

but i am stuck at pxe booting it.
At my server side laptop i have hosted the build output folder of the android-x86 over NFS . Here all the kernel,initrd, ramdisk, system.sfs images & other folders like root ,system etc are residing.

At my client side laptop during the pxe boot , kernel & initrd gets downloaded and the OS seems starts booting as many log prints but the booting gets stuck at "detecting android-x86 ....." . i know that android-x86 has 2 stage booting mechanism and it seems it is stuck at the 2nd stage , maybe it is unable find the ramdisk.img . here is my script ..
------------------------------------------------------------------------------------------------------------
#!ipxe
iPXE> set server_ip 192.168.0.105
iPXE> set nfs_path /home/ayx/android-x86/out/target/product/x86_64
iPXE> kernel nfs://${server_ip}${nfs_path}/kernel || read void
iPXE> initrd nfs://${server_ip}${nfs_path}/initrd.img || read void

iPXE> imgargs kernel root=/dev/nfs rw ip=dhcp androidboot.hardware=android_x86_64 netboot=nfs nfsroot=${server_ip}:${nfs_path},nolock,wsize=1024,rsize=1024 initrd=initrd.img ROOT=${server_ip}:${nfs_path}

boot || read void
-----------------------------------------------------------------------------------------------------------

How can i load the ramdisk.img over nfs using iPXE ? or how can i properly boot android-x86 using iPXE ?
i will be very grateful to your help


RE: android-x86 pxe boot - MultimediaMan - 2018-07-09 15:59

Check some of your booting requirements: I don't see that you downloaded ramdisk.img:

Code:
iPXE> set server_ip 192.168.0.105
iPXE> set nfs_path /home/ayx/android-x86/out/target/product/x86_64
iPXE> kernel nfs://${server_ip}${nfs_path}/kernel || read void
iPXE> initrd nfs://${server_ip}${nfs_path}/initrd.img || read void
iPXE> initrd nfs://${server_ip}${nfs_path}/ramdisk.img || read void

iPXE> imgargs kernel root=/dev/nfs rw ip=dhcp androidboot.hardware=android_x86_64 netboot=nfs nfsroot=${server_ip}:${nfs_path},nolock,wsize=1024,rsize=1024 initrd=initrd.img ROOT=${server_ip}:${nfs_path}

try adding another initrd argument in the kernel commandline:

initrd=initrd.img initrd=ramdisk.img

~or~

initrd=initrd.img,ramdisk.img


RE: android-x86 pxe boot - ayx - 2018-07-10 18:47

Hello @MultimediaMan thanks a lot .. yes you are right i was not downloading the ramdisk.img .
after downloading it the "detecting android ...." stage got solved .. here is my iPXE script

Code:
#!ipxe

echo Hi, trying to boot androidx86
dhcp
set server_ip 192.168.0.103
set nfs_path /home/ayx/android-x86/out/target/product/x86_64
kernel nfs://${server_ip}${nfs_path}/kernel || read void
initrd nfs://${server_ip}${nfs_path}/initrd.img || read void
initrd nfs://${server_ip}${nfs_path}/ramdisk.img || read void
imgargs kernel root=/dev/nfs rw ip=dhcp androidboot.hardware=android_x86_64 netboot=nfs nfsroot=${server_ip}:${nfs_path},nolock,wsize=4096,rsize=4096 initrd=initrd.img,ramdisk.img ROOT=${server_ip}:${nfs_path}
boot || read void
echo Booting

but now i have got a new problem ... the booting gets failed by showing "/system/bin not found" .. actually there are several system paths shown not to be found . in the end the booting is stuck at showing "binder 1756:1756 transaction failed ..... "

do i need to modify the init script or code at the source and build again ?.maybe the rootfs is failing to get mount over nfs ?

thanks for the help.


RE: android-x86 pxe boot - shahul - 2018-12-15 07:39

(2018-07-10 18:47)ayx Wrote:  Hello @MultimediaMan thanks a lot .. yes you are right i was not downloading the ramdisk.img .
after downloading it the "detecting android ...." stage got solved .. here is my iPXE script

Code:
#!ipxe

echo Hi, trying to boot androidx86
dhcp
set server_ip 192.168.0.103
set nfs_path /home/ayx/android-x86/out/target/product/x86_64
kernel nfs://${server_ip}${nfs_path}/kernel || read void
initrd nfs://${server_ip}${nfs_path}/initrd.img || read void
initrd nfs://${server_ip}${nfs_path}/ramdisk.img || read void
imgargs kernel root=/dev/nfs rw ip=dhcp androidboot.hardware=android_x86_64 netboot=nfs nfsroot=${server_ip}:${nfs_path},nolock,wsize=4096,rsize=4096 initrd=initrd.img,ramdisk.img ROOT=${server_ip}:${nfs_path}
boot || read void
echo Booting

but now i have got a new problem ... the booting gets failed by showing "/system/bin not found" .. actually there are several system paths shown not to be found . in the end the booting is stuck at showing "binder 1756:1756 transaction failed ..... "

do i need to modify the init script or code at the source and build again ?.maybe the rootfs is failing to get mount over nfs ?

thanks for the help.

I am also facing same issue "binder 1756:1756 transaction failed ..... ".
can you please help me if issue is solved for you.

Regards,
Sk shahul.