[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howtos:hardware:arm:qemu_support_in_slackware_arm [2018/11/20 01:03 (UTC)] – [QEMU NAT Mode Networking] mralk3howtos:hardware:arm:qemu_support_in_slackware_arm [2021/03/28 12:51 (UTC)] (current) – [Sources] mralk3
Line 1: Line 1:
 ====== Qemu Support in Slackware ARM ====== ====== Qemu Support in Slackware ARM ======
  
-This document describes the process of installing **Slackwarearm** inside of QEMU.+This document describes the process of installing **Slackware ARM** inside of QEMU.
  
   * QEMU is a full system emulator that can emulate a range of real hardware architectures. In this case we will use QEMU to emulate the ARM Ltd. "Versatile Express" development board.   * QEMU is a full system emulator that can emulate a range of real hardware architectures. In this case we will use QEMU to emulate the ARM Ltd. "Versatile Express" development board.
   * QEMU provides a platform to allow an operating system to believe that it is running on real hardware.   * QEMU provides a platform to allow an operating system to believe that it is running on real hardware.
-  * QEMU runs on your Intel-based Slackware PC/server (in most cases this will be a desktop machine, but it is possible to run QEMU on a headless server and use VNC for graphics).+  * QEMU runs on your Slackware PC or server.  In most cases this will be a desktop machine.  However, it is possible to run QEMU on a headless server and use VNC for graphics
 + 
 +===== Last modified (September 2020===== 
 + 
 +This tutorial was last verified on //September, 22 2020//, on **Qemu 4.1 installed on Slackware64-current**, dated //Sun Sep 20 08:08:08 UTC 2020// Verification on Slackware 14.2 is still necessary.  The helper scripts were built for qemu-2.5, and do not work with the latest version of qemu (4.2 at the time of writing). 
 + 
 +<del>The issues are to do with the network support.</del>  //They should be fixed//. 
 + 
 +If you have suggestions for the helper scripts, please post a diff [[https://www.linuxquestions.org/questions/slackware-arm-108/qemu-system-arm-panic-on-x86_64-a-4175670124/|on here]] or email mozes at slackware.  Please base fixes on the [[ftp://ftp.arm.slackware.com/slackwarearm/boardsupport/qemu/slackwarearm-current/helper-scripts/|the latest scripts]].
  
 ===== Who is Slackware ARM in QEMU aimed at? ===== ===== Who is Slackware ARM in QEMU aimed at? =====
Line 27: Line 35:
   * You have root access on the host machine and can compile software   * You have root access on the host machine and can compile software
   * The Slackware host and QEMU emulator are on a secure Local Area Network   * The Slackware host and QEMU emulator are on a secure Local Area Network
-  * The host machine has the address 192.168.1.1 and the network has the [[https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing | CIDR]] value of 192.168.1.0/24 
-  * You can export a Network File System file share on the host machine that shares the Slackware ARM tree with the QEMU guest 
-  * The root directory of the exported NFS share on the host is located at /export 
- 
-<note tip>These guidelines can be met with one Slackware x86/x86_64 host machine.  This single host machine can serve the NFS content, as well as host the Slackware ARM installation inside QEMU. </note> 
- 
 ===== Slackware x86 Host Prerequisites ===== ===== Slackware x86 Host Prerequisites =====
  
   - Download the **Slackwarearm** distribution package tree with rsync   - Download the **Slackwarearm** distribution package tree with rsync
   - Populate a location with the Slackware ARM QEMU files   - Populate a location with the Slackware ARM QEMU files
-  - Configure the Network File Server (NFS) on the Slackware x86 Host 
   - Install QEMU and the device-tree-compiler software on the Slackware x86 host   - Install QEMU and the device-tree-compiler software on the Slackware x86 host
   - Configure QEMU Permissions on the Slackware x86 Host   - Configure QEMU Permissions on the Slackware x86 Host
   - Create the QEMU disk image using the helper scripts   - Create the QEMU disk image using the helper scripts
 +  - Configure a web server to mirror Slackware ARM for the qemu guest
 ==== Download Slackware ARM ==== ==== Download Slackware ARM ====
-Download Slackware ARM to your Slackware x86 Host.  In this tutorial rsync is used to mirror Slackware ARM.  Before running rsync, make your user has read, write, and execute permissions within the /export directory.+Download Slackware ARM to your Slackware x86 Host.  In this tutorial rsync is used to mirror Slackware ARM.  Before running rsync, make sure your user has read, write, and execute permissions within the directory you pick.  In this example /slackwarearm/$SLACKREL is used, but you can use a directory of your choice.
  
 +Log in as root and run the following:
 <code> <code>
-mkdir -p /export/slackwarearm +mkdir -p /slackwarearm/$SLACKREL 
-cd /export/slackwarearm+cd /slackwarearm/$SLACKREL
 rsync --exclude '*/source/*' --delete -Pavv ftp.arm.slackware.com::slackwarearm/$SLACKREL . rsync --exclude '*/source/*' --delete -Pavv ftp.arm.slackware.com::slackwarearm/$SLACKREL .
 </code> </code>
Line 57: Line 59:
 ==== Populate Slackware ARM Files and Directories ==== ==== Populate Slackware ARM Files and Directories ====
  
-In order to boot the Slackware ARM installer you need to create a directory that stores the Kernel and Initial RAM disk.  You also need a few helper scripts to run QEMU.  In this totorial, all of these files will be stored in /export/armhost.+In order to boot the Slackware ARM installer you need to create a directory that stores the Kernel and Initial RAM disk.  You also need a few helper scripts to run QEMU.  In this totorial, all of these files will be stored in /slackwarearm.
  
 Copy the kernel and RAM disk: Copy the kernel and RAM disk:
 <code> <code>
-mkdir -p /export/armhost +cd /slackwarearm 
-cp -fa /export/slackwarearm/$SLACKREL/kernels/armv7/{zImage*,initrd*,dtb} /export/armhost/ +cp -fa /slackwarearm/$SLACKREL/kernels/armv7/{zImage*,initrd*,dtb} /slackwarearm 
-cp -fa /export/slackwarearm/$SLACKREL/isolinux/initrd-armv7.img /export/armhost/+cp -fa /slackwarearm/$SLACKREL/isolinux/initrd-armv7.img /slackwarearm
 </code> </code>
  
Line 71: Line 73:
 # rsync -Prlvv --delete ftp.arm.slackware.com::slackwarearm/boardsupport/qemu/$SLACKREL . # rsync -Prlvv --delete ftp.arm.slackware.com::slackwarearm/boardsupport/qemu/$SLACKREL .
 # cd $SLACKREL # cd $SLACKREL
-# cp -fav helper-scripts/* /export/armhost/+# cp -fav helper-scripts/* /slackwarearm
 </code>       </code>      
  
 You can find the [[http://slackware.uk/slackwarearm/boardsupport/qemu/slackwarearm-current/helper-scripts/ | helper scripts here]] if you do not wish to use rsync to download them. You can find the [[http://slackware.uk/slackwarearm/boardsupport/qemu/slackwarearm-current/helper-scripts/ | helper scripts here]] if you do not wish to use rsync to download them.
  
-<note tip>The $SLACKREL variable refers to the Slackware ARM tree you downloaded.  If you chose Slackwarearm-14.2, the path will be /export/slackwarearm/slackwarearm-14.2.  The rsync URL for the QEMU helper scripts will be ftp.arm.slackware.com::slackwarearm/boardsupport/qemu/slackwarearm-14.2</note>+<note tip>The $SLACKREL variable refers to the Slackware ARM tree you downloaded.  The rsync URL for the QEMU helper scripts will be:
  
-==== Configure Network File System services ====+<code>ftp.arm.slackware.com::slackwarearm/boardsupport/qemu/slackwarearm-current</code></note>
  
-The Slackware x86 host needs to be configured appropriately in order to run the Slackwarearm installation process within QEMU.  The easiest and most efficient way to do so is by setting up a Network File System (NFS) share on the host machine.  This NFS share will be used by the Slackwarearm client (running inside QEMU) to access the Slackware distribution package tree on the host.  NFS services are not the only way to serve the Slackware distribution package tree to the QEMU client.  Other methods are quite a bit slower when used with QEMU emulated networking.  As a result, the NFS service has been chosen for this tutorial. 
- 
-You need to know the QEMU network settings in order to access the NFS share.  It is recommended that you use NAT mode networking with QEMU.  NAT mode allows direct access to the Slackware x86 host NFS share through a QEMU hosted virtual network.  More information about the virtual network and assigned addressing is discussed later on in this guide. 
- 
-With a text editor, as root, add the following to the Slackware host's /etc/exports: 
- 
-<code> 
-# QEMU guest virtual IP address 
-/export/slackwarearm 10.0.2.15(insecure,ro,nohide,root_squash,sync,no_subtree_check) 
-</code> 
- 
-NAT mode does not allow direct access to the physical Local Area Network.  You will need to set up a bridged network interface if you decide you need direct network access.  NAT mode will be sufficient for most users. 
- 
-Use something similar to the following if you want a bridged network interface: 
-<code> 
-/export/slackwarearm xxx.xxx.xxx.x/255.255.255.0(insecure,ro,nohide,root_squash,sync,no_subtree_check) 
-</code> 
- 
-Replace xxx.xxx.x.x/255.255.255.0 and match it with your network configuration. 
- 
-Activate the NFS share by executing the following as root: 
-<code> 
-# chmod +x /etc/rc.d/{rc.rpc,rc.nfsd} 
-# /etc/rc.d/rc.nfsd 
-# exportfs -va 
-</code> 
 ==== Install QEMU and device-tree-compiler ==== ==== Install QEMU and device-tree-compiler ====
  
Line 132: Line 108:
 ==== Create QEMU Disk Image ==== ==== Create QEMU Disk Image ====
  
-Prior to booting the Slackware ARM installer in QEMU, you must create a disk image that acts as an emulated [[https://en.wikipedia.org/wiki/Secure_Digital | SD Card]].  This disk image is used to emulate the MMC controller in Slackware ARM.  Earlier you copied the Slackware ARM helper scripts to /export/armhost/.  Within this directory there is a script, **makeimg**.  This script creates a 15GB disk image automatically in /export/armhost/ when it is executed.  Initially all you need to do is run this script.+Prior to booting the Slackware ARM installer in QEMU, you must create a disk image that acts as an emulated [[https://en.wikipedia.org/wiki/Secure_Digital | SD Card]].  This disk image is used to emulate the MMC controller in Slackware ARM.  Earlier you copied the Slackware ARM helper scripts to /slackwarearm.  Within this directory there is a script, **makeimg**.  This script creates a 15GB disk image automatically in /slackwarearm when it is executed.  Initially all you need to do is run this script.
  
 Switch to the directory where you copied the helper scripts and execute **makeimg**: Switch to the directory where you copied the helper scripts and execute **makeimg**:
  
 <code> <code>
-cd /export/armhost+cd /slackwarearm
 ./makeimg ./makeimg
-</code> 
- 
-For reference, this is the **makeimg** script: 
-<code> 
-# Create the QEMU disk image - the emulated SD card. 
- 
-IMG=sdcard.img 
-SIZE=15G 
- 
-rm -f $IMG 
-qemu-img \ 
-   create \ 
-   $IMG $SIZE 
 </code> </code>
  
Line 158: Line 121:
 ===== QEMU Network Settings ===== ===== QEMU Network Settings =====
  
-This section covers the process of setting up QEMU guest networking.  Two different processes will be described.  //Network Address Translation mode (NAT)// is the first and easiest way to get a functional network in QEMU guests.  The second is //bridged mode//.  The difference between the two is that NAT mode does not allow direct access to the Slackware x86 host's physical network and bridged mode does.  It is best to use bridged mode if you plan on doing any more advanced network operations that require full access to the host and the host's physical network.  Most users will want to use NAT mode.+This section covers the process of setting up QEMU guest networking.  //Network Address Translation mode (NAT)// is the recommended way to get a functional network in QEMU guests.  You can also use a //bridged mode// network.  NAT mode does not allow direct access to the Slackware x86 host's physical network and bridged mode does.  It is best to use bridged mode if you plan on doing any more advanced network operations that require full access to the host and the host's physical network.  **Most users will want to use NAT mode.  As a result, Bridged mode will not be detailed here.**
  
 There are many different ways to configure QEMU guest networking.  This document will only cover the QEMU functionality required to boot Slackware ARM.  Refer to the QEMU man pages or the [[https://www.qemu.org/documentation/ | QEMU documentation]] if you need further explanation. There are many different ways to configure QEMU guest networking.  This document will only cover the QEMU functionality required to boot Slackware ARM.  Refer to the QEMU man pages or the [[https://www.qemu.org/documentation/ | QEMU documentation]] if you need further explanation.
  
-<note warning>Later on when you boot the Slackware ARM installer in QEMU you may need to modify the **txqueuelen** for your network interfaces.  This is because large Slackware packages time out while being downloaded from the NFS share on the host.  This happens because QEMU emulation is very slow.  The NFS daemon on your host machine simply shuts down the network socket before large packages (rust, kernel-firmware, etc) finish being copied to the SD Card.  Setting the txqueuelen to **10000** for all network interfaces should be sufficient to prevent this anomaly.  The following command seems to resolve this issue:+<note warning>Later on when you boot the Slackware ARM installer in QEMU you may need to modify the **txqueuelen** for your network interfaces.  This is because large Slackware packages time out while being downloaded from the host.  This happens because QEMU emulation is very slow.  The host machine occasionally shuts down the network socket before large packages (rust, kernel-firmware, etc) finish being copied to the emulated SD Card.  Setting the txqueuelen to **10000** for all network interfaces should be sufficient to prevent this anomaly.  The following command seems to resolve this issue:
  
  
Line 173: Line 136:
 NAT mode does not require any additional configuration on the Slackware x86 host machine or in the QEMU guest machine.  Here is a shortened example of a QEMU guest being launched with NAT mode networking: NAT mode does not require any additional configuration on the Slackware x86 host machine or in the QEMU guest machine.  Here is a shortened example of a QEMU guest being launched with NAT mode networking:
 <code> <code>
-# cd /export/armhost+# cd /slackwarearm
 # qemu-system-arm -nographic \ # qemu-system-arm -nographic \
    -m 1024 \    -m 1024 \
    -M vexpress-a9 \    -M vexpress-a9 \
 +   -smp 4 \
    -k en-us \    -k en-us \
    -net nic \    -net nic \
-   -net user+   -net user,restrict=n \
    ..snip..    ..snip..
 </code> </code>
  
-The **-net nic** and **-net user** options enable QEMU to start the Slackwarearm guest with NAT mode networking enabled.+The **-net nic** and **-net user** options enable QEMU to start the Slackware ARM guest with NAT mode networking enabled.  These settings are documented further in both the **installer_launch** and **disk_launch** helper scripts.
  
 With NAT mode enabled, QEMU launches a virtual network of 10.0.2.0/24.  The QEMU guest will be assigned the IP address 10.0.2.15.  The guest can access the Slackware x86 host at 10.0.2.2 and the QEMU DNS server runs at 10.0.2.3.  QEMU does not have direct access to the host's Local Area Network.  This means that the QEMU guest isn't assigned a physical IP address by your router DHCP service.  You will not be able to ping the QEMU guest from the host machine but the guest should be able to ping the host machine at 10.0.2.2.  The QEMU guest should be able to access the internet and communicate with the host machine. With NAT mode enabled, QEMU launches a virtual network of 10.0.2.0/24.  The QEMU guest will be assigned the IP address 10.0.2.15.  The guest can access the Slackware x86 host at 10.0.2.2 and the QEMU DNS server runs at 10.0.2.3.  QEMU does not have direct access to the host's Local Area Network.  This means that the QEMU guest isn't assigned a physical IP address by your router DHCP service.  You will not be able to ping the QEMU guest from the host machine but the guest should be able to ping the host machine at 10.0.2.2.  The QEMU guest should be able to access the internet and communicate with the host machine.
-==== QEMU Bridged Mode Networking ====+==== Configure a Web Server to Mirror Slackware ARM ====
  
-There are two ways to set up bridged mode networking.  The method you choose depends on your existing network configuration.  The first method uses the existing Slackware init scripts.  The Slackware init scripts will create the network bridge and enable the QEMU guest's NIC in the form of tap device.  The Slackware init scripts are configured by editing /etc/rc.d/rc.inet1.conf.+There is a very simple way to share the ARM directory on the host with the ARM guests.  Use python and launch basic web server like so:
  
-The second method uses the provided rc.local-additions script.  A brief explanation can be found later in this document, [[https://docs.slackware.com/howtos:hardware:arm:qemu_support_in_slackware_arm#qemu_bridged_mode_rclocal-additions | here]].+<code> cd /slackwarearm && python -m SimpleHTTPServer</code>
  
-The Slackware beginner's guide briefly explains [[https://docs.slackware.com/slackware:beginners_guide#configure_your_network | networking on a Slackware system]].  Additionally, Eric Hameleers wrote a very in-depth guide explaining [[https://wiki.alienbase.nl/doku.php?id=slackware:network | advanced networking on Slackware]].  I suggest you read through both documents to familiarize yourself with the process.+The URL pointing to the mirror depends on the directory structure you used to store Slackwarearm on the qemu host.  The directory /slackwarearm/$SLACKREL was used earlier in this guide.  If you have mirrored slackwarearm-current, you would point your web browser at:  http://192.168.1.2:8000/slackwarearm-current/.
  
-First I will discuss how to use the Slackware init scripts.  This is by far the easiest way to configure the bridge.  Let's take a look at the relevant changes in rc.inet1.conf: +For production environment, the Apache Web server (httpd on Slackware) may be more desirable.  Further directions to use Apache can be found [[howtos:network_services:setup_apache|here]].
-<code> +
-IFNAME[0]="br0" +
-BRNICS[0]="eth0" +
-IPADDR[0]="" +
-NETMASK[0]="" +
-IPALIASES[0]="" +
-USE_DHCP[0]="yes" +
-DHCP_HOSTNAME[0]="" +
- +
-VIRTIFNAME[0]="tap0" +
-VIRTIFTYPE[0]="tap" +
-VIRTIFUSER[0]="root" +
-VIRTIFGROUP[0]="root" +
-</code> +
- +
-You will need to restart your network for the changes to take effect.  It is also important to disable NetworkManager if are going to use rc.inet1.conf to configure your network.  NetworkManager comes with Slackware, but it is not developed by Slackware.  As result, the process of configuring a bridge with NetworkManager is not supported in this guide.  The following commands must be executed as root: +
- +
-<code> +
-# /etc/rc.d/rc.networkmanager stop +
-# chmod -x /etc/rc.d/rc.networkmanager +
-# /etc/rc.d/rc.inet1 restart +
-</code> +
- +
-Next you need to create a few files that QEMU requires to bring up the guest's network interface.  These scripts must be executable because QEMU runs each of them automatically upon booting the Slackware ARM guest.  If they do not already exist in /export/armhost, create them. +
- +
-File: qemu-network-tun.sh +
-<code> +
-#!/bin/sh +
- +
-# This is the IP of 'tap0' on the Slackware/x86 host: +
-BRIDGEIP=192.168.1.4 +
- +
-modprobe tun +
-/sbin/ifconfig $1 $BRIDGEIP netmask 255.255.255.0 +
-/sbin/brctl addif br0 $1 +
-</code> +
- +
-File: qemu-network-tun-down.sh +
-<code> +
-#!/bin/sh +
- +
-/sbin/ifconfig $1 down +
-/sbin/brctl delif br0 $1 +
-</code> +
- +
-Mark both qemu-network-tun.sh and qemu-network-tun-down.sh as executable +
-<code> +
-# chmod +x /export/armhost/qemu-network-tun.sh +
-# chmod +x /export/armhost/qemu-network-tun-down.sh +
-</code> +
- +
-You are now ready to boot the Slackware ARM guest.  Launch QEMU with the following command: +
-<code> +
-# cd /export/armhost +
-# qemu-system-arm -nographic \ +
-   -net nic${MACADDR} -net tap,ifname=tap0,script=qemu-network-tun.sh,downscript=qemu-network-tun-down.sh \ +
-   -m 1024 \ +
-   -M vexpress-a9 \ +
-   -k en-us \ +
-   -rtc base=localtime \ +
-   -no-reboot \ +
-   -sd sdcard.img \ +
-   -append "TERM=xterm-256color vmalloc=256MB console=ttyAMA0,115200n8 nofont nic=auto:eth0:dhcp root=/dev/ram rw" \ +
-   -kernel zImage-armv7 \ +
-   -dtb dtb/vexpress-v2p-ca9.dtb \ +
-   -initrd initrd-armv7.img +
-</code> +
- +
-Notice the line: **-net nic${MACADDR} -net tap,ifname=tap0,script=qemu-network-tun.sh,downscript=qemu-network-tun-down.sh** +
- +
-This line tells QEMU to attach to the tap device, tap0, which you configured earlier in /etc/rc.d/rc.inet1.conf.  This option will assign (qemu-network-tun.shtap0 an IP address when the QEMU guest is started.  It will also destroy (qemu-network-tun-down.sh) tap0 network settings upon QEMU guest shut down. +
- +
-==== QEMU Bridged Mode Networking with rc.local-additions ==== +
- +
-This section describes the process of configuring QEMU networking with a more fine grained control.  It uses the **rc.local-additions** init script provided within the Slackware ARM helper scripts.  This script requires a bit more of an in-depth knowledge to network bridges, tap devices, and networking in general.  It is meant as an example for the user to edit and add to /etc/rc.d/rc.local on the Slackware x86 host.  It is very likely that this script will not be useful until you customize it to fit the network settings on your Local Area Network. +
- +
-You can find the script with comments here: [[http://slackware.uk/slackwarearm/boardsupport/qemu/slackwarearm-current/helper-scripts/rc.local-additions rc.local-additions]] +
- +
-Here is the relevant portion of the script that requires modification.  Changes depend on your network settings for the host machine: +
-<code> +
-.. snip .. +
- +
-# Turn on the bridge.  Note that this is a different IP from +
-# the one specified in your qemu-network-bridge.sh script +
-# in your 'armhost' directory on your Slackware x86 box. +
-# You need a bridge IP, a tunnel (tap0) IP, and then another +
-# IP which is assigned to the Slackware ARM host (by Linux inside QEMU) +
-# to its own eth0. +
-# I tried bringing this up after eth0 but the bridge didn't work. +
-# I don't know why that is! +
-ifconfig br0 192.168.1.3 up +
- +
-# Put back the original IP for eth0: +
-ifconfig eth0 192.168.1.2 up +
- +
-#  +
-route del default +
-route add default gw 192.168.1.1 +
-</code> +
- +
-These network settings assume static IP addressing.  The br0 interface is the bridged network interface.  The eth0 interface is the host machine network interface that allows the host machine to retain network connectivity.  The default gateway, 192.168.1.1, typically points to the network gateway on the physical network.  In order for the QEMU guest to access the network you must configure the tap0 device with the **qemu-network-tun.sh** script.  This static IP address should reflect your network settings as well. +
- +
-<code> +
-#!/bin/sh +
- +
-# This is the IP of 'tap0' on the Slackware/x86 host: +
-BRIDGEIP=192.168.1.4 +
- +
-modprobe tun +
-/sbin/ifconfig $1 $BRIDGEIP netmask 255.255.255.0 +
-/sbin/brctl addif br0 $1 +
-</code> +
- +
-As described earlier in this document, you can launch the Slackware ARM installer within the QEMU guest, with the same network options: +
-<code> +
-# qemu-system-arm -nographic \ +
-   -net nic${MACADDR} -net tap,ifname=tap0,script=qemu-network-tun.sh,downscript=qemu-network-tun-down.sh \ +
-   .. snip .. +
-   -initrd initrd-armv7.img +
-</code>+
  
 +Alternatively, use a mirror on the internet if you have too much difficulty configuring your own mirror.
 ===== Install Slackware ARM ===== ===== Install Slackware ARM =====
  
Line 327: Line 172:
  
 <code> <code>
-cd /export/armhost+cd /slackwarearm
 ./installer_launch ./installer_launch
 </code> </code>
Line 347: Line 192:
 ==== Setup and Configuration ==== ==== Setup and Configuration ====
  
-Run the **setup** command at the shell prompt after you exit the partitioning tool.  Make the installer aware of your swap parition and root partition.  It is recommended that you select the ext4 file system when you format the root partition.  Next you will be prompted to select the source media.  Choose option 4, **Install from NFS (Network Filesystem)**.  Enter the IP address of your Slackware x86 host.  Enter the path to the NFS mounted share.+Run the **setup** command at the shell prompt after you exit the partitioning tool.  Make the installer aware of your swap partition and root partition.  It is recommended that you select the ext4 file system when you format the root partition.  Next you will be prompted to select the source media.  Choose option 5, **Install from FTP/HTTP sever**.  Enter the IP address of your Slackware x86 host.  The path to the Apache (httpd) directory is required:
  
-The full path of the NFS share is required: +<code>What is the URL of your FTP/HTTP server?</code> 
-<code> +In this case we will use the host IP address, enter the URL address: http://192.168.1.2 
-Enter the IP address: 192.168.1.1 # br0 or eth0 IP address + 
-Enter the directory/export/slackwarearm/$SLACKREL/slackware +<code>What is the Slackware source directory?</code> 
-</code>+This is the directory that is accessible in your web browser.  I used: /slackwarearm-current/slackware
  
 Following that, you will be prompted for package selection.  Slackware ARM has all of the standard Slackware packages apart from those which are x86 only.  It is highly recommended that you do a **full** installation to satisfy all system dependencies.  Please be patient, this is the most time consuming part of the installation process. Following that, you will be prompted for package selection.  Slackware ARM has all of the standard Slackware packages apart from those which are x86 only.  It is highly recommended that you do a **full** installation to satisfy all system dependencies.  Please be patient, this is the most time consuming part of the installation process.
Line 379: Line 224:
 ===== Boot Slackware ARM with QEMU ===== ===== Boot Slackware ARM with QEMU =====
  
-**Work in Progress** +Congratulations for making it this far!  The next step is booting into your fresh installation of Slackware ARM.  Locate the **disk_launch** helper script in /export/armhost and modify it to fit your needs.
- +
-For making it this far, congratulations!  The next step is booting into your fresh installation of Slackwarearm-current.  Locate the **disk_launch** helper script in /export/armhost and modify it to fit your needs.+
  
 <code> <code>
-# cd /export/armhost+# cd /slackwarearm
 # vi disk_launch # vi disk_launch
 </code> </code>
Line 395: Line 238:
   * **NETTYPE** - network configuration, NAT mode or bridged mode   * **NETTYPE** - network configuration, NAT mode or bridged mode
  
-The **disk_launch** script can be found online, [[http://ftp.arm.slackware.com/slackwarearm/boardsupport/qemu/slackwarearm-current/helper-scripts/disk_launch|here]].+The **disk_launch** script for Slackwarearm-current can be found online, [[http://ftp.arm.slackware.com/slackwarearm/boardsupport/qemu/slackwarearm-current/helper-scripts/disk_launch|here]].
  
 The first boot will take quite a while.  This is due to the fact that Slackware will generate the font cache for the first time.  Start up QEMU by executing the disk_launch script. The first boot will take quite a while.  This is due to the fact that Slackware will generate the font cache for the first time.  Start up QEMU by executing the disk_launch script.
Line 403: Line 246:
 </code> </code>
  
 +Assuming all is well, you can begin using Slackware ARM just as you would any other Slackware installation.
 ===== Slackware ARM Graphical User Interface ===== ===== Slackware ARM Graphical User Interface =====
  
Line 410: Line 254:
 ====== Sources ====== ====== Sources ======
 <!-- If you are copying information from another source, then specify that source --> <!-- If you are copying information from another source, then specify that source -->
-  * Originally written by [[wiki:user:mozes|Stuart Winter]]+  * Originally written by [[http://www.slackware.com/~mozes/|Stuart Winter]]
   * Original source: [[http://ftp.arm.slackware.com/slackwarearm/boardsupport/qemu/]]   * Original source: [[http://ftp.arm.slackware.com/slackwarearm/boardsupport/qemu/]]
 <!-- Authors are allowed to give credit to themselves! --> <!-- Authors are allowed to give credit to themselves! -->
-  * Modified and Maintained by [[wiki:user:mralk3 | Brenton Earl (mralk3)]]+  * Modified and Maintained by [[wiki:user:mralk3 | mralk3 ]]
 <!-- * Contributions by [[wiki:user:yyy | User Y]] --> <!-- * Contributions by [[wiki:user:yyy | User Y]] -->
  
 howtos:hardware:arm:qemu_support_in_slackware_arm ()