Thinstation / thinstation

A framework for making thin and light Linux based images for x86 based machines and thinclients.
https://www.thinstation.net/
821 stars 188 forks source link

Build Problem lib is not a mountpoint #854

Closed Theknight2015 closed 1 month ago

Theknight2015 commented 1 month ago

First off, I want to say thank you in advance to anyone who is able to provide feedback or help on this matter.

Secondly, I know this has been covered some in other scenarios but I can't seem to find a scenario that matches mine when having this issue.

Scenario: PXE Booting a ThinClient powered by a 12th Gen Intel N95 CPU with Integrated Graphics DHCP Server on network has option 66 and 67 set to my ThinStation Server which is running on a Ubuntu Linux system TFTPD-HPA Server installed on ThinStation Server Once ThinClient PXE Boots, it grabs the grubx64.efi file from the ThinStation server then uses that to get the vmlinuz and initrd files Everything works as it should and I can boot on occasion (Read below for problem)

Basic problem:

'/lib is not a mountpoint

It then drops to the shell where I can enter commands. If I don't change a single thing in the config files and simply rebuild with the --allmodules flag, it goes right back to working again.

I'm assuming this is due to me not having something in the machine section or a driver package not loaded? The only things I have uncommented (IE: enabled) are as follows:

The Machine Section

Wireless stuff

Filesystem support

Packages

And more is uncommented but I think those are the primary sections to getting the system working (correct me if I'm wrong please) and I doubt you want me to post my entire build.conf file here but if you do, let me know and I will.

Any help on figuring out which modules or packages I need to enable that the --allmodules flag is enabling would be greatly appreciated.

Doncuppjr commented 1 month ago

Ideally, you would want to make a machine profile with hwlister.sh. Possibly you need the fuse module to allow fastboot to mount the squashfs at /lib

Theknight2015 commented 1 month ago

Ideally, you would want to make a machine profile with hwlister.sh. Possibly you need the fuse module to allow fastboot to mount the squashfs at /lib

I actually read a short instructional on how to do this and from my understanding (on the thinclient) after boot, you press Ctrl + Alt + F2 keys and it drops to shell then you enter the "cd /" command then "cd /bin" and it changes directory to the bin folder. This is where I get lost. From what I understand there should be a hwlister.sh file in there but there is not in mine. I even changed to root user to check if maybe there was a difference in displayed files and there is not.

Do I have to create a hwlister.sh file or is this something that should already be in there or what?

Doncuppjr commented 1 month ago

Include the hwlister package in your build that you are using for profiling

Theknight2015 commented 1 month ago

Oh okay I have now uncommented the following and re-built the system using "./build --allmodules"

package extensions-x # Adds various utility s for the X Environment !!!! INCLUDES hwlister.sh !!!!

I have also added a line that says module fuse as there was not one available in the build.conf file that I found. Correct me if I'm wrong on that or if I need to go back and remove it.

The results of uncommenting the above mentioned line is as follows: ./build --allmodules (This seems to finish correctly) Boot up thin client (This grabs the grubx64.efi file then the vmlinuz and initrd files as expected and the ThinStation boot screen flashes across fairly quick followed by a black screen for about 45-60 seconds) The desktop loads (It seems to load correctly) I hit Ctrl + Alt + F2 to drop to shell and login as the root user I navigate to /bin and run ./hwlister.sh

I get the following errors: tftp: server error: (1) File not found tftp: server error: (1) File not found tftp: server error: (1) File not found

Then it drops back to shell again.

Just to see, I issued the following command to make sure I could connect to my tftp server tftp 192.168.1.194 -m binary -c get /EFI/boot/grubx64.efi grubx64.efi The file was returned correctly as grubx64.efi in my local directory

By the looks of it, hwlister.sh seems to be trying to get a file from the tftp server and that file does not exist?

Doncuppjr commented 1 month ago

Its actually trying to push files to your tftp server. There are four potential files that it might try and push. You can move them manually into /build/machine/"a good name"/. , then add machine "your good name" to your build.conf /module.list /package.list /vbe_modes.list /firmware.list

Doncuppjr commented 1 month ago

Updated comment as github interpreted my syntax weird

Theknight2015 commented 1 month ago

Its actually trying to push files to your tftp server. There are four potential files that it might try and push. You can move them manually into /build/machine/"a good name"/. , then add machine "your good name" to your build.conf /module.list /package.list /vbe_modes.list /firmware.list

Okay so following your above steps, I ended up getting it to push the files to my tftp server as that was easiest then I moved the following files to a folder called N95 in the /build/machine folder. /module.list /package.list /firmware.list

It did not create a /vbe_modes.list file for me so I did not move those. I then went in to the build.conf file and added a line at the end of the machine section that says: machine N95

I think that is correct???

Then I rebuilt with ./build --allmodules just so I know everything is loaded I then rebooted the thinclient and it worked as usual with the --allmodules flag so I went back and rebuilt again using just ./build with no flags so I could see if it now worked with my custom N95 module and it now works.

I appreciate it greatly! I'll follow up with any issues I come across if I come across them.