Debian Setup TFTP/NFS: Difference between revisions
(Created page with "<!-- Set release according to "release" parameter in URL and use MORTY_V1.0_DART-6UL as default --> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- --> {{#lst:Debian_Pla...") |
(Update link 'Build Linux kernel') |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- Set release according to "release" parameter in URL and use | <!-- Set release according to "release" parameter in URL and use }} RELEASE_BUSTER_V1.0_DART-MX8M-MINI as default | ||
--> {{ | --> {{INIT_RELEASE_PARAM|RELEASE_BUSTER_V1.0_DART-MX8M-MINI}}<!-- | ||
--> {{#lst:Debian_Platform_Customization|{{#var:RELEASE_PARAM | --> {{#lst:Debian_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!-- | ||
--> {{PageHeader|{{#var:HARDWARE_NAME}} - Debian Setup TFTP/NFS}} {{DocImage|category1={{#var:HARDWARE_NAME}}|category2=Debian}} __toc__ | --> {{PageHeader|{{#var:HARDWARE_NAME}} - Debian Setup TFTP/NFS}} {{DocImage|category1={{#var:HARDWARE_NAME}}|category2=Debian}} __toc__ <!-- | ||
Show SHOW_CONFIG_FEC note if these conditions met: | |||
1. KERNEL_VER >= 5.4.24 | |||
2. KERNEL_DEFCONFIG == imx8mq_var_dart_defconfig | |||
3. SOC_SERIES == imx8 | |||
or | |||
1. KERNEL_VER < 5.4.24 | |||
2. SOC_SERIES == imx8 | |||
-->{{#vardefine:KERNEL_VER_VER|{{#explode:{{#var:KERNEL_VER}}|.|0}}}}<!-- Parse Kernel Version XX.yy.zz | |||
-->{{#vardefine:KERNEL_VER_MAJOR|{{#explode:{{#var:KERNEL_VER}}|.|1}}}}<!-- Parse Kernel Version xx.YY.zz | |||
-->{{#vardefine:KERNEL_VER_MINOR|{{#explode:{{#var:KERNEL_VER}}|.|2}}}}<!-- Parse Kernel Version xx.yy.ZZ | |||
-->{{#vardefine:SHOW_CONFIG_FEC|1}}<!-- | |||
Initialize SHOW_CONFIG_FEC = 1 | |||
Check KERNEL_VER and KERNEL_DEFCONFIG | |||
-->{{#ifexpr: {{#var:KERNEL_VER_VER}}.{{#var:KERNEL_VER_MAJOR}} >= 5.4|{{#ifexpr: {{#var:KERNEL_VER_MINOR}} >= 24|<!-- if KERNEL_VER > 5.4.24 | |||
-->{{#ifeq: {{#var:KERNEL_DEFCONFIG}} | imx8mq_var_dart_defconfig ||<!-- and KERNEL_DEFCONFIG != imx8mq_var_dart_defconfig | |||
-->{{#vardefine:SHOW_CONFIG_FEC | 0}}<!-- SHOW_CONFIG_FEC = 0 | |||
-->}}|<!--minor >= 24-->}}|<!--major >= 5.4-->}}<!-- | |||
-->{{#ifeq: {{#var:SOC_SERIES}} | imx8 ||{{#vardefine:SHOW_CONFIG_FEC|0}}}}<!-- if SOC_SERIES != mx8, SHOW_CONFIG_FEC = 0 --> | |||
= Running Debian rootfs on Variscite board using TFTP & NFS = | = Running Debian rootfs on Variscite board using TFTP & NFS = | ||
== Host == | == On the Host == | ||
Prepare the rootfs folder: | |||
$ cd {{#var:BUILD_FOLDER}} | |||
$ mkdir -p ~/rootfs_debian_nfs | |||
$ cd ~/rootfs_debian_nfs | |||
$ sudo tar xvf {{#var:BUILD_FOLDER}}/output/rootfs.tar.gz -C . | |||
Make sure | Make sure the NFS server is installed: | ||
$ sudo apt-get install nfs-kernel-server | $ sudo apt-get install nfs-kernel-server | ||
Edit /etc/exports. E.g. | |||
$ sudo gedit /etc/exports | |||
...and add the following line to it (replace <uname> with the actual username): | |||
/home/<uname>/rootfs_debian_nfs *(rw,sync,no_root_squash,no_all_squash,no_subtree_check) | |||
Restart the NFS server: | |||
$ sudo /etc/init.d/nfs-kernel-server restart | |||
Make sure the TFTP server is installed: | |||
Make sure | |||
$ sudo apt-get install xinetd tftpd tftp | $ sudo apt-get install xinetd tftpd tftp | ||
Verify the following: | Verify the following: | ||
$ ls /usr/sbin/in.tftpd | $ ls /usr/sbin/in.tftpd | ||
Line 47: | Line 71: | ||
{{#ifeq: {{#var:SOC_SERIES}} | imx8 | | {{#ifeq: {{#var:SOC_SERIES}} | imx8 | | ||
<br> | <br> | ||
$ sudo cp -a | $ sudo cp -a ~/rootfs_debian_nfs/boot/*.dtb /tftpboot | ||
$ sudo cp | $ sudo cp ~/rootfs_debian_nfs/boot/{{#var:KERNEL_IMAGE}} /tftpboot | ||
| | | | ||
<br> | <br> | ||
$ sudo cp | $ sudo cp -a output/*.dtb /tftpboot | ||
$ sudo cp output/{{#var:KERNEL_IMAGE}} /tftpboot | |||
$ sudo | |||
}} | }} | ||
{{# | {{#ifexpr: {{#var:SHOW_CONFIG_FEC}} | | ||
{{Note| | {{Note|'''The default kernel configuration should be modified to compile Ethernet driver into kernel image instead compiling it as a loadable module.''' | ||
Follow our kernel compilation guide {{Varlink|Yocto_Build_Linux|{{#var:RELEASE_LINK}}|Build kernel from source code}}<br> | Follow our kernel compilation guide {{Varlink|Yocto_Build_Linux|{{#var:RELEASE_LINK}}|Build kernel from source code}}<br> | ||
Run "make menuconfig", go to "Device Drivers → Network device support → Ethernet driver support → Freescale devices → FEC ethernet controller" and press y. | Run "make menuconfig", go to "Device Drivers → Network device support → Ethernet driver support → Freescale devices → FEC ethernet controller" and press y. | ||
Compile the kernel and copy arch/arm64/boot/ | Follow this same process to also change the following drivers to built-in:<br> | ||
CONFIG_AT803X_PHY=y<br> | |||
CONFIG_ADIN_PHY=y<br> | |||
Compile the kernel and copy arch/arm64/boot/{{#var:KERNEL_IMAGE}} to /tftpboot }} | |||
}} | }} | ||
== Target == | Make adjustments to the rootfs:<br><br> | ||
When using NetworkManager on the target, configure NetworkManager not to manage the interface used for the NFS boot by adding the following to ''~/rootfs_debian_nfs/etc/NetworkManager/NetworkManager.conf'': | |||
[keyfile] | |||
unmanaged-devices=interface-name:eth0 | |||
Enable DNS: | |||
$ sudo ln -fs /proc/net/pnp ~/rootfs_debian_nfs/etc/resolv.conf | |||
== On the Target == | |||
Make sure you have a serial connection to the target. | Make sure you have a serial connection to the target. | ||
Boot the board and hit any key to stop the autoboot and get to the U-Boot command line. | |||
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX7 | => setenv image zImage}} | {{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX7 | => setenv image zImage}} | ||
=> setenv serverip | => setenv serverip <HOST_IP_ADDRESS> (replace <HOST_IP_ADDRESS> with the actual IP address of your host - run 'ifconfig' on the host to get it) | ||
=> setenv nfsroot | => setenv nfsroot /home/<uname>/rootfs_debian_nfs (replace <uname> with the actual username) | ||
=> setenv bootcmd run netboot | => setenv bootcmd run netboot | ||
=> saveenv | => saveenv | ||
You are all set. Connect Ethernet cable, power cycle | You are all set. Connect the target board to the same network as the host using an Ethernet cable, power cycle it and it should boot over NFS.<br> | ||
<br> | <br> |
Latest revision as of 20:29, 18 April 2023
This page is using the default release RELEASE_BUSTER_V1.0_DART-MX8M-MINI.
To view this page for a specific Variscite SoM and software release, please follow these steps:
- Visit variwiki.com
- Select your SoM
- Select the software release
Running Debian rootfs on Variscite board using TFTP & NFS
On the Host
Prepare the rootfs folder:
$ cd ~/var_mx8mm_dart_debian_buster $ mkdir -p ~/rootfs_debian_nfs $ cd ~/rootfs_debian_nfs $ sudo tar xvf ~/var_mx8mm_dart_debian_buster/output/rootfs.tar.gz -C .
Make sure the NFS server is installed:
$ sudo apt-get install nfs-kernel-server
Edit /etc/exports. E.g.
$ sudo gedit /etc/exports
...and add the following line to it (replace <uname> with the actual username):
/home/<uname>/rootfs_debian_nfs *(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
Restart the NFS server:
$ sudo /etc/init.d/nfs-kernel-server restart
Make sure the TFTP server is installed:
$ sudo apt-get install xinetd tftpd tftp
Verify the following:
$ ls /usr/sbin/in.tftpd $ sudo gedit /etc/xinetd.d/tftp service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no }
and run:
$ sudo mkdir /tftpboot $ sudo chmod -R 777 /tftpboot $ sudo /etc/init.d/xinetd restart $ cd ~/var_mx8mm_dart_debian_buster
$ sudo cp -a ~/rootfs_debian_nfs/boot/*.dtb /tftpboot $ sudo cp ~/rootfs_debian_nfs/boot/Image.gz /tftpboot
Follow our kernel compilation guide Build kernel from source code
Run "make menuconfig", go to "Device Drivers → Network device support → Ethernet driver support → Freescale devices → FEC ethernet controller" and press y.
Follow this same process to also change the following drivers to built-in:
CONFIG_AT803X_PHY=y
CONFIG_ADIN_PHY=y
Make adjustments to the rootfs:
When using NetworkManager on the target, configure NetworkManager not to manage the interface used for the NFS boot by adding the following to ~/rootfs_debian_nfs/etc/NetworkManager/NetworkManager.conf:
[keyfile] unmanaged-devices=interface-name:eth0
Enable DNS:
$ sudo ln -fs /proc/net/pnp ~/rootfs_debian_nfs/etc/resolv.conf
On the Target
Make sure you have a serial connection to the target.
Boot the board and hit any key to stop the autoboot and get to the U-Boot command line.
=> setenv serverip <HOST_IP_ADDRESS> (replace <HOST_IP_ADDRESS> with the actual IP address of your host - run 'ifconfig' on the host to get it) => setenv nfsroot /home/<uname>/rootfs_debian_nfs (replace <uname> with the actual username) => setenv bootcmd run netboot => saveenv
You are all set. Connect the target board to the same network as the host using an Ethernet cable, power cycle it and it should boot over NFS.