You are on page 1of 245

G4L Disk imaging Project

Create Disk/Partition images for backup purposes


Documentation is based on version 0.53
Please send any comments or suggestions to mikes@guam.net
G4L Documentations - Table of Contents
G4L Primary Purpose............................................................................................................................3
General Usage.....................................................................................................................................3
Partition Image.....................................................................................................................................3
Raw Partition Image.....................................................................................................................3
NTFSCLONE Partition Image......................................................................................................3
Fsarchiver Partition Image...........................................................................................................3
Official Web Sites.....................................................................................................................................4
About Sourceforge...............................................................................................................................4
About Freecode (Formerly Freshmeat)...............................................................................................4
Included Software that supports G4L.......................................................................................................5
The Linux Kernel Archives...................................................................................................................5
The Syslinux Project............................................................................................................................5
HDT - Hardware Detection Tool...........................................................................................................5
BusyBox: Many useful utilities in a single package.............................................................................5
NCFTP FTP programs used to transfer image files between systems............................................5
Udpcast Multicast program...............................................................................................................6
LZOP Compression Program...........................................................................................................6
Fsarchiver Filesytem Archiver...........................................................................................................6
TESTDISK Data Recovery tool.........................................................................................................6
Memtest System memory test program............................................................................................6
Basic System Documentation..................................................................................................................7
G4L 0.53 Syslinux Boot Screen...........................................................................................................7
Memtest Screen...................................................................................................................................8
G4L 0.53 G4LMENU............................................................................................................................9
G4L 0.53 Main Menu.........................................................................................................................10
G4L 0.53 Raw Menu..........................................................................................................................11
G4L 0.53 Network Menu....................................................................................................................12
G4L 0.53 Local Menu.........................................................................................................................14
G4L 0.53 Local Menu Option A..........................................................................................................15
G4L 0.53 Click n' Clone.....................................................................................................................16
G4L 0.53 Utilities Menu......................................................................................................................17
Support Files from CD isolinux directory...............................................................................................19
syslinux.cfg file...................................................................................................................................19
Menu.lst Example menu.lst config file............................................................................................22
Busybox Configuration File................................................................................................................23
Kernel Configuration file for bz4x10.4 4.10.4.................................................................................44
Startup Information File.................................................................................................................118
Preimage Information File................................................................................................................119
Front Example Front End File.......................................................................................................120
Programs to help clear unused space from partition to be imaged.................................................122
Cleandrive is a very basic Linux/Unix Script that works..............................................................122
Cleandrive8 - more complex script..............................................................................................122
Blank6.cpp A simple Borland C program..................................................................................125
Disclaim File that discusses issues between early version of G4L and G4U.................................127

Page 1 of 245
Status Updates................................................................................................................................127
Files from the Resource Directory of Development Kit........................................................................128
Jetcat-mod7.c Filter program used in G4L...................................................................................128
Lblank7.c Linux c program............................................................................................................130
Ntfsreloc.c Ntfs relocation.............................................................................................................131
Files from root file system of G4L........................................................................................................139
AES-ssh Encryption information file.............................................................................................139
aestest2 File to test keyfile and image file to make sure they work correctly...............................141
Original Help File from version 0.14 of G4L....................................................................................142
Instruct file that is displayed as part of the start process................................................................146
Latest file that shows all the updates since 0.48.............................................................................147
G4Lmenu script that displays startup options for users..................................................................160
ifcheck2.sh shell script that checks for nic cards and tries to setup IP.........................................161
TESTCD script to setup /dev/cdrom to current device.................................................................163
udhcpc.sh Shell script used to setup IP address via dhcpd.........................................................164
Getkey.sh script to help user copy key file and passphrase file...................................................165
G4L30O11 main script linked to g4l..................................................................................................168
6 scripts to help with getting front end.................................................................................................220
fg4l script downloads clear text script from ftp server public directory.........................................220
efg4l script downloads an encrypted script from ftp server public directory.................................221
exg4l script that downloads encrypted script from users ftp directory.........................................222
xg4l downloads front end script from user directory.....................................................................223
zxg4l download script from user ftp directory...............................................................................224
zxeg4l script to download encrypted front-end form users ftp directory.......................................226
rcS G4L linux boot up script..........................................................................................................228
Bkey script to set keyboard map..................................................................................................230
Cleandrive8 script to clear free space on partitions.....................................................................232
Cleandrive8.dialog Script to prompt to clear free space..............................................................235
Startftpd Script to start ftp deamon...............................................................................................240
xprogress script that runs progress from main g4l script.............................................................241
Advance startup Options......................................................................................................................243
Start telnet server at boot up...........................................................................................................243
Run Commands on Starup..............................................................................................................243
Convert G4L from CD setup to flash setup..........................................................................................244
Convert G4L from CD setup to PXE setup..........................................................................................244
Special Setup Files for G4L.................................................................................................................245
G4L-WIN.EXE Self extracting 7z file for Windows setup.............................................................245
G4L-Lite.7z and G4L-lite.zip............................................................................................................245

Page 2 of 245
G4L Primary Purpose
General Usage
G4L is a primarily a disk/partition image backup system rather than a file level backup system.
G4L should be used in conjunction with file level backup systems.

Bare-Metal Backup (Disk Image)


Bare-metal restore is a technique in the field of data recovery and restoration where the backed up data is
available in a form which allows one to restore a computer system from "bare metal", i.e. without any
requirements as to previously installed software or operating system.
http://en.wikipedia.org/wiki/Bare-metal_restore

G4L can create disk image files that can be used to restore an image with no additional processes. It
creates a bit level copy image of the entire disk include MBR (Master Boot Record), Partition Table,
and Partition(s) of the disk. This will put a system back to the state that is was at when the image file
was created. This can be done after a disk failure to a new disk, or if the disk has been corrupted by a
virus or user errors.

Booting G4L and restoring the image should bring the machine back to the saved state. No need to
partition, install an OS, or run any updates.

Partition Image
Partition Images are similar to disk images in that they contain the full contents of the partition, but
restoring a partition image does require that the partition be created before the restoration. G4L does
include the option to make backups of the MBR and partition table. The restoration of a partition
image will put that partition back to the exact state of the partition at the time of the image creation.

Raw Partition Image


The raw partition image does a bit level copy of the partition copying all sectors of the partitions.
NTFSCLONE Partition Image
Ntfsclone is a special program that can backup ntfs (windows) partitions copying the files and file
system data.
Fsarchiver Partition Image
A special File Level backup Image that can be created.

Page 3 of 245
Official Web Sites
About Sourceforge
From http://sourceforge.net/about (Feb 2017)

SourceForge is an Open Source community resource dedicated to helping open source


projects be as successful as possible. We thrive on community collaboration to help us create
a premiere resource for open source software development and distribution.
With the tools we provide, developers on SourceForge create powerful software in over
430,000 projects; we host over 3.7 million registered users. Our popular directory connects
more than 41.8 million customers with all of these open source projects and serves more than
4,800,000 downloads a day.
IT professionals come to SourceForge to develop, download, review, and publish open source
software. SourceForge is the largest, most trusted destination for Open Source Software
discovery and development on the web.
SourceForge.net is owned and operated by Slashdot Media. Connect with us here.

http://sourceforge.net/projects/g4l/

NOTE: Effective 2014-06-18 Freecode is no longer being updated


About Freecode (Formerly Freshmeat)
From http://freecode.com/about (April 2013)

Freecode maintains the Web's largest index of Linux, Unix and cross-platform software, and
mobile applications. Thousands of applications, which are preferably released under an open
source license, are meticulously cataloged in the Freecode database, and links to new
applications are added daily. Each entry provides a description of the software, links to
download it and to obtain more information, and a history of the project's releases, so readers
can keep up-to-date on the latest developments.

Freecode is the first stop for Linux users hunting for the software they need for work or play. It
is continuously updated with the latest developments from the "release early, release often"
community. In addition to providing news on new releases, Freecode offers a variety of
original content on technical, political, and social aspects of software and programming,
written by both Freecode readers and Free Software luminaries. The comment board attached
to each page serves as a home for spirited discussion, bug reports, and technical support. An
essential resource for serious developers, Freecode makes it possible to keep up on who's
doing what, and what everyone else thinks of it.

http://freecode.com/projects/g4l/

Page 4 of 245
Included Software that supports G4L
The Linux Kernel Archives
http://kernel.org/ - G4L Kernels are built from kernel.org source files.
The Syslinux Project
http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project The G4L CD uses the isolinux for the
boot process from the CD. Syslinux can be used to boot from a flash. PXElinux can be used to also
boot the G4L.
https://www.kernel.org/pub/linux/utils/boot/syslinux/ Site of the syslinux files both released and testing.
Note: The Syslinux uses the unmodified files of syslinux except for a minor modification to the cat.c32
program that is used to display information files. It adds a line to inform the user to press enter to
return to the menu display.
HDT - Hardware Detection Tool
http://www.hdt-project.org/ - HDT (stands for Hardware Detection Tool) is a Syslinux com32 module that
displays low-level information for any x86 compatible system. It provides both a command line interface and a
semi-graphical menu mode for browsing.
G4L includes HDT as part of syslinux menus for checking hardware.
BusyBox: Many useful utilities in a single package.
http://busybox.net
BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides
replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox
generally have fewer options than their full-featured GNU cousins; however, the options that are included
provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a
fairly complete environment for any small or embedded system.
BusyBox has been written with size-optimization and limited resources in mind. It is also extremely modular so
you can easily include or exclude commands (or features) at compile time. This makes it easy to customize your
embedded systems. To create a working system, just add some device nodes in /dev, a few configuration files
in /etc, and a Linux kernel.
BusyBox is maintained by Denys Vlasenko, and licensed under the GNU GENERAL PUBLIC LICENSE version
2.
G4L uses busybox to supply many of the support programs used. The configuration files are
included in the root of the CD as busybox-1.21.0.config, with some earlier configuration files.

NCFTP FTP programs used to transfer image files between systems.


http://ncftp.org/ncftp/
Provides shell command line format to specify operations and options in addition to standard
integrated command interpreter.
For example:

ncftpls -u uname -p password ftp://server/ftppath/


ncftpput
ncftpget

Page 5 of 245
Udpcast Multicast program
http://udpcast.linux.lu/index.html - UDPcast is a file transfer tool that can send data simultaneously to
many destinations on a LAN. This can for instance be used to install entire classrooms of PC's at once. The
advantage of UDPcast over using other methods (nfs, ftp, whatever) is that UDPcast uses Ethernet's multicast
abilities: it won't take longer to install 15 machines than it would to install just 2.
UDPcast is released under the GPL 2.0 license. Parts of the code (fec.c) falls under a BSD-like license. The new
boot loader contains cardmgr, which falls under the mozilla public license. All other included third-party
software (busybox, dialog, lzop, udhcp, ...) falls under GPL (to the best of my knowledge. If you notice software
falling under a different license, especially one with a BSD-like publicity clause, please notify me).
UDPcast can be started from the included busybox boot image for OS installations, or from the command line
when using it for other purposes. Udpcast may be booted from CD, floppy media, or via the network, by using
PXE or Etherboot. A configuration file (udpcfg.txt) may be included on these boot media in order to bypass the
setup menu.
G4L uses udpcast to send images of partitions and disks to multiple computers simultaneously. This
is very useful when reconfiguring a group of systems in an office or classroom.
LZOP Compression Program
http://www.lzop.org/ - lzop is a file compressor which is very similar to gzip. lzop uses the LZO data
compression library for compression services, and its main advantages over gzip are much higher compression
and decompression speed (at the cost of some compression ratio).
lzop is copyrighted OpenSource software distributed under the terms of the GNU General Public License
(GPL).
G4L using lzop as the default compression because it does good compression with much shorter times than
other options. Generally half the time to compress compared with gzip, but 10% larger image size. In addition,
gzip, bzip2 and no compression is available.
Fsarchiver Filesytem Archiver
http://sourceforge.net/projects/fsarchiver/ - fsarchiver is a system tool that allows you to save the contents
of a file-system to a compressed archive file. The file-system can be restored on a partition which has a different
size and it can be restored on a different file-system.
G4L has options to use this program.
TESTDISK Data Recovery tool
http://www.cgsecurity.org/wiki/TestDisk - TestDisk is powerful free data recovery software! It was primarily
designed to help recover lost partitions and/or make non-booting disks bootable again when these symptoms
are caused by faulty software, certain types of viruses or human error (such as accidentally deleting a Partition
Table). Partition table recovery using TestDisk is really easy.
Memtest System memory test program.
http://www.memtest.org/ - Based on the well-known original memtest86 written by Chris Brady,
memtest86+ is a port by some members of the x86-secret team, now working at www.canardpc.com. Our goal is
to provide an up-to-date and completly reliable version of this software tool aimed at memory failures detection.

Memtest86+ is, like the original, released under the terms of the Gnu Public License (GPL). No restrictions for
use, private or commercial exist other than the ones mentioned in the Gnu Public License (GPL). Texts about
the original version was taken from the original website and written by Chris Brady.

Page 6 of 245
Basic System Documentation
Created by Special Project Students 2017

Craig Strong
CS-290-01
Special Project
G4L 0.53 Syslinux Boot Screen

1) First off begin by using the command:


M: memtest86+-4.20

Special Note. If you boot the CD and the above menu doesn't display, it can be a rare issue in
which your video card does not support vesa screen options used by the vesamenu.c32
program. In this rare case. Press the ESC key that will take you to a regular text screen. Then
type menu and press the Enter key. That will run menu.c32, which provide a similar menu
without the graphic background.

It is normally best to try the default kernel on the first attempt, but some hardware may work with other
kernels or kernels with the failsafe options.

Page 7 of 245
Memtest Screen
Memtest will run through 8 specific tests to check system ram and make sure that everything is
sufficient for the program to run correctly. IT IS HIGHLY RECOMMEND USING THIS FIRST.
This should be done on the machine being imaged and the FTP server if being used.

Note: Above screen shot is from a Virtualbox running the G4L, and it shows memory being
ECC, but that is not true for the system. The information you will see will be different.
ECC memory has the ability to actually correct errors by using 12 bits per byte, and can be
found in higher end servers or workstations.

2) After completion of one or more memtest cycles, you should then press the ESC key to end the
memtest and proceed with the default kernel. Version 0.44 uses letter I or Enter for the default
kernel to be loaded and run.

I: bz3.8.4 X86 build 3.8.4 03-20-2013 this is the latest default kernel with 0.44. However you may
use the older kernels (bz32, bz33, bz34) in case the latest kernel does not work for you. Additionally,
there is a release candidate kernel that can be used, but is not fully released by kernel.org.

After Inputting I Let it Run until it gets to the disclaimer window, then the basic instruction window,
etc or just hit the enter key. Eventually you will get to the Select Keymap where you will be able to
select what keyboard mapping to use. BE SURE TO USE THE SPACEBAR TO SELECT.
*Default keyboard mapping is us/us.bmap

*Please also be aware that you may also run with the Failsafe menu to run G4l. Running G4L in
failsafe will disable certain features in order for G4L to bypass certain options in your computer and
increase user compatibility.

*Options disabled in Failsafe are as follow:


-noapic -noacpi -pnpbios=off -acpi=off -pci=noacpi

Also you may use Z: Hardware Detection Tool 0.5.2 in order to go in greater detail of your hardware
such as Disks, Memory, Processor, motherboard, etc.

Page 8 of 245
G4L 0.53 G4LMENU

Directions when choosing the following:


Option 1- Enter g4l, and you will be directed to the main menu.
Option 2- Enter g4l with the following parameter options:
#1- Enter the IP address of the ftp server
#2- Enter the image file name with extension to determine the compression.
#3- User ID and password (two format options):
example: Format 1: userid:password
johndoe:computer
Format 2: -u userid -p password
-u johndoe -p computer
#4- dhcp (use dhcp to get the ip address automatically) or fixed ipaddress
#5- change the default directory from img to another image file.
#6- eth0 (default or other device)
#7- Enter reboot (reboots/restarts system) or poweroff (shuts down system)

*For options 3-6, the parameters must be used in order

Option 3- fg4l [ftpserverip] [dev] [filename] (default front)


Option 4- efg4l [ftpserverip] [dev] [filename] (default front.bic)
Option 5- zxg4l [ftpserverip] [dev] [filename] userid:password
Option 6- zexg4l [ftpserverip] [dev] [filename] userid:password

example: g4l 192.168.0.0 test.lzo userx:passwordx dhcp img

Page 9 of 245
G4L 0.53 Main Menu

Main Menu Features


Raw Mode: Gives you the option of copying the data from the hard drive sector by sector.
File mode: Gives you the option of only copying sectors that are being use with the file system.
Utilities: Sends you to the utilities menu, which gives you the option to view the system's
information or use other tools and devices.
Show Help: Shows the additional information on the changes and revisions of the G4L program.

*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 10 of 245
G4L 0.53 Raw Menu

Raw Mode

Network Use: Allows you to backup/restore to/from the network.


Local Use: Allows you to backup/restore to/from the local drive.
Click n' Clone: Allows you to directly clone a drive from the source to the target.

*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 11 of 245
G4L 0.53 Network Menu

Creating or restoring over the network


Select Option A: Pick a Device: This is to set the network card.
Select Option B: Setting IP address: IP address can be configured by DHCP or can be set manually.
Select Option D: Config FTP: Enter the address of your FTP Server
Select Option E: Config Useridpass: If FTP server is password protected, enter the username
and password.
example: Format 1: userid:password
johndoe:computer
Format 2: -u userid -p password
-u johndoe -p computer
Select Option F: Config File Name:
1: Backing up: Enter the name of the image file you will create.
2: Restoring: Locate the image file you want to restore.
Select Option G: Compression: You will be able to choose from different types of compression.

Compression choices include Lzop, Gzip, Bzip2 and None.


Lzop: Default compression and recommended Fastest with Good Compression
Gzip: Better Compression but requires much more time and processor power
Bzip2: Best Compression but even more time required.
None: No compression, makes image same size.

In a test on a small partition. None took 10 seconds, Lzop took 3 seconds, Gzip took 6
seconds, and Bzip2 took 18 seconds. In larger test, double speed of Gzip over Lzop was
noted, and only 10% improvement of image size.

Select Option H: Backup: Choose the drive or partition to backup.


Select Option I: Restore: Choose the drive or partition to restore.
Select Option M: MBR (Master Boot Record): This copies the master boot record (the first
512 bytes) and the physical partition table.

Page 12 of 245
Select Option N: NTFSclone Backup: Allows you to select what NTFS partition that you would
like to back up.
Select Option O: NTFSclone Restore: Allows you to select any of the NTFS partitions to
restore your image to.
Select Option P: Set Local Path: Set the sub directory or path name to which you would like
to store the image.
Select Option S: Special Commands: Sends you to a menu that lists special commands.
Select Option T: Display Time: Sets the option to display the time results after the transfer.
Select Option U: UDP-MULTICAST-CLIENT: If chosen, it allows you to be a receiver,
simultaneously receiving an image/drive from multiple computer systems.
Select Option W: UDP-MULTICAST-SERVER: If chosen, it allow you to be the sender,
simultaneously sending an image/drive to multiple computer systems.
Select Option X: Reboot/Poweroff: Gives you the option to choose whether to reboot or
power off your machine. The 10 second default timer results in rebooting
the machine if no option is chosen.

*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 13 of 245
G4L 0.53 Local Menu

Creating or restoring over the network


Select Option A: Pick a Local Mount: You are given the option to pick the partition or drive
which you want to backup/restore.
Select Option B: Config file name: Give your restore/backup image a file name.
Example: computerx.lzo
Select Option C: Toggle Split: Choose whether you would like to split the image file. This
option is usual chosen when the size of the image is larger than the size of
the device.
Select Option D: Compression: Lzop is the default file compression option. You are given the
option to choose other compressors such as Gzip, Bzip2, or no compression.
Compression allows you to make your image file smaller.
*Note: Compression requires more CPU power.
Select Option E: Backup: Choose the drive or partition to backup.
Select Option F: Restore: Choose the drive or partition to restore.
Select Option G: Fsarchiver Backup: Choose an Fsarchived drive or partition to back up. An
fsarchiver is a program that opens a file system that reads the individual file
and stores it in an archive.
Select Option H: Fsarchiver Restore: Choose an Fsarchived drive or partition to restore.
Select Option M: MBR (Master Boot Record): This copies the master boot record and the
physical partition table (the first 512 bytes) or MBR and EBRs.
Select Option N: NTFSCLONE Backup: Allows you to select what NTFS partition that you
would like to back up.
Select Option O: NTFSCLONE Restore: Counter Part to Option N
Select Option P: Set Local Path: Set the sub directory or path name to which you would like
to store the image.
Select Option S: Special Commands: Sends you to a menu that lists special commands.
Select Option T: Display Time: Sets the option to display the time results after the transfer.
Select Option X: Reboot/Poweroff: Gives you the option to choose whether to reboot or
power off your machine. The 10 second default timer results in rebooting the
machine if no option is chosen.
*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 14 of 245
G4L 0.53 Local Menu Option A

Creating or restoring locally

Select Option A: Pick Local Mount: Select the drive where image will be save or restored from.
Select Option B. Config File Name:
Backing Up: Enter the image file name you will create.
Restoring: Enter the image file name you want to restore.
Execute Operation:
Select Option E: Backup: Choose the drive or partition to backup.
Select Option F: Restore: Choose the drive or partition you will restore to.

*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 15 of 245
G4L 0.53 Click n' Clone

CLICK N' CLONE :


It is recommended for multiple hard drives or installing a second drive. You should use drives that
have identical sizes or larger. No image file is created. Click N' Clone directly copies disk or partition
and write to is target (destination).

Select Option A: Select Source: Select source drive . Select the drive or partition you want to
duplicate. Use space bar to select drive.
Select Option B: Select Target Drive: Select a drive that will be overwritten. Existing files will
be destroyed. Use space bar to select drive.
Select Option C: Click n' Clone: Verify your source and Target Drive. Press enter to execute.
Select Option D: Toggle partitions: Allows you to select partitions within the drive that you
would like to clone. The source and target must be filled in order to enable
this option.
Select Option P: PowerOff: Gives you the option to shut down the system after the
click n' clone process.
Select Option R: Reboot: Gives you the option to reboot/restart the system after the
click n' clone process.
Select Option S: Special Commands: Sends you to a menu that lists special commands.

*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 16 of 245
G4L 0.53 Utilities Menu

Another great feature of the G4L program is the Utilities menu for more experienced users, while for
others this menu may require assistance of a more experienced user. You may use this option to
further enhance your experience with G4l. Below Is a rundown of what each option can assist you
with. Many of these options were added at the request of users in the past.

You can get to the Utilities menu from the main menu and selecting Utilities or by simply pressing
U on your keyboard.

A: System Info : Letter A allows you to show drives, partitions, and models in detail.
B: dmesg: Shows a log file of the boot up process for G4L.
C: ftp: Allows you to transfer files through File Transfer Protocol. EX: You can transfer the
dmesg log file in case of an error to another computer.
D: hdparm: Allows you to set Hard Drive parameters, depending on the hardware you may
adjust and see the maximum speed of the Hard Drive and what option it uses.
E: keymap: Using this option will allow you to set the keymap for your keyboard. If you are
from another country please select a keymap suggested for you. *Note you will also be
able select the keymap from the boot up process of G4L.
F: ntpclient: Time synchronization. Allows you to get the time from a server and adjust the
time accordingly.
G: telnetd: With telnetd you are able to log in remotely to another machine using a command
box Putty. However you would need to know the IP Address.
H: Zero-Tool: Allows it to compress blank space to almost nothing.
I: ddrescue: ddrescue attempts to scan your drive of any imperfections/defective sectors
and will continuously try to repair the defective drive to another drive. Please use the
Help option for advance options before using the Options command.
J: TestDisk: Version 6.13 Released In case of lost partitions, or if you would like to make
non bootable disks bootable again you may use this option. Also it can also be used to
repair some file system error.

Page 17 of 245
K: Parted: Allows you to re-size partitions. PLEASE BE AWARE THAT THIS IS FOR EXPERT
USER ONLY. EX If a partition size is 40GB and at full capacity do not re-size it to
something smaller. ALSO ALWAYS MAKE A BACKUP IN CASE OF AN EMERGENCY.
L: TestDisk: Version 6.14 WIP (Work in Progress) In case of lost partitions, or if you would like
to make non bootable disks bootable again you may use this option. Also it can also be used to
repair some file system error.
M: Validate Partition: Program used to test if the partition is good to use.
F3write creates files with special data, and f3read validates that data matches to insure media
is working as it should.
S: Special Commands: Allows you to run special commands through G4L without ever
leaving the program.
X: Reboot/Poweroff: This option simply will give you a choice if either you would like to
Reboot or Poweroff your machine. If using the reboot option be sure to remove your
G4L cd.

*All modes can be selected by pressing the letter that corresponds to the option marked in bold red.

Page 18 of 245
Support Files from CD isolinux directory
syslinux.cfg file
This is the file that displays on boot up of the G4L CD.
The Failsafe.cfg file has options disabled for all kernels to work with some hardware.
Note: make sure to use same version of syslinux on flash or also replace c32 files.

DEFAULT vesamenu.c32
TIMEOUT 600
Prompt 0
menu color screen 37;40 #80ffffff #00000000
menu color border 30;44 #40000000 #00000000
menu color title 1;33;44 #c0fdd017 #00000000
menu color unsel 37;44 #90ffffff #00000000
menu color hotkey 1;37;44 #ffffffff #00000000
menu color sel 7;37;40 #e0000000 #20ff8000
menu color hotsel 1;7;37;40 #e0400000 #20ff8000
menu color scrollbar 30;44 #40000000 #00000000
menu color tabmsg 31;40 #90ffff00 #00000000
menu color cmdmark 1;36;40 #c000ffff #00000000
menu color cmdline 37;40 #c0ffffff #00000000
menu color pwdborder 30;47 #80ffffff #20ffffff
menu color pwdheader 31;47 #80ff8080 #20ffffff
menu color pwdentry 30;47 #80ffffff #20ffffff
menu color timeout_msg 37;40 #80ffffff #00000000
menu color timeout 1;37;40 #c0ffffff #00000000

Menu TITLE G4L boot Menu - version 0.53a


MENU BACKGROUND test.png
MENU ROWS 14
MENU TABMSGROW 19
MENU TIMEOUTROW 21
MENU CMDLINEROW 20
MENU ENDROW 22
MENU HELPMSGROW 22
MENU HELMSGENDROW 22

#Compiled kernels to set ramdisk_size values


#kernel option
#CONFIG_BLK_DEV_RAM_COUNT=1
#CONFIG_BLK_DEV_RAM_SIZE=147456

LABEL bz3.18.48
MENU LABEL ^A: bz3.18.48 x86 02-08-2017
TEXT HELP
Kernel 3x18.48 from Kernel.org
ENDTEXT
LINUX bz3x18.48
APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL bz4x1.38
MENU LABEL ^B: bz4x1.38 x86 01-18-2017

Page 19 of 245
TEXT HELP
Kernel 4x1.38 from Kernel.org
ENDTEXT
LINUX bz4x1.38
APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL bz4x4.54
MENU LABEL ^C: bz4x4.54 x86 03-15-2017
TEXT HELP
Kernel 4x4.54 from Kernel.org
ENDTEXT
LINUX bz4x4.54
APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL bz4x9.15
MENU LABEL ^D: bz4x9.15 x86 03-15-2017
TEXT HELP
Kernel 4x9.15 from Kernel.org
ENDTEXT
LINUX bz4x9.15
APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL bz4x10.3
MENU LABEL ^E: bz4x10.3 x86 03-15-2017
MENU DEFAULT
TEXT HELP
Kernel 4x10.3 from Kernel.org
ENDTEXT
LINUX bz4x10.3
APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL Failsafe
MENU LABEL ^J: Failsafe Menu
TEXT HELP
Switch between menu with/without failsafe options
ENDTEXT
CONFIG failsafe.cfg
APPEND initrd=ramdisk.lzma root=/dev/ram0
#LABEL NOSMP
# MENU LABEL ^K: NOSMP Menu
# TEXT HELP
# Some kernel panics with smp option running??
# ENDTEXT
# CONFIG nosmp.cfg
# APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL bz4x11.rc2
MENU LABEL ^K: bz4x11.rc2 x86 03-12-2017
TEXT HELP
Kernel 4x11.rc2 from Kernel.org
ENDTEXT
LINUX bz4x11.rc2
APPEND initrd=ramdisk.lzma root=/dev/ram0
LABEL memtest86-5.01
MENU LABEL ^M: memtest86+-5.01
TEXT HELP
Memory test Program to insure system Ram is Good
ENDTEXT

Page 20 of 245
LINUX memtest
LABEL Reboot
MENU LABEL ^R: Reboot
TEXT HELP
Reboot system out of G4L
ENDTEXT
COM32 reboot.c32
LABEL PreImage
MENU LABEL ^T: Pre-Image Help File
TEXT HELP
Information on steps to prepare system from imaging
ENDTEXT
COM32 cat.c32 preimage
LABEL Startup
MENU LABEL ^U: Start Up Help File
TEXT HELP
Information on Start Up Options
ENDTEXT
COM32 cat.c32 startup
LABEL Disclaim
MENU LABEL ^V: Disclaimer File
TEXT HELP
Disclaimer information on G4L/G4U
ENDTEXT
COM32 cat.c32 disclaim
LABEL hdt
MENU LABEL ^Z: Hardware Detection Tool 0.5.2
TEXT HELP
Get Detailed Low Level System Information syslinux 5.10
ENDTEXT
COM32 hdt.c32
APPEND modules_pcimap=modules.pcimap pciids=pci.ids memtest=memtest

Page 21 of 245
Menu.lst Example menu.lst config file
That can be used with Grub4dos or the g4l lines can be added to an existing grub.conf or menu.lst file
to allow for booting from already installed setup.

One needs to copy the kernel file and ramdisk.lzma files to /boot directory or /linux directory.

This exact file is included in the g4l-lite.zip, g4l-win.exe, and g4l-lite.7z files created.
The g4l-win.exe extracts the grub4dos program, and puts the files in the /linux directory along with
memtest.

title Windows XP
find --set-root /ntldr
chainloader /ntldr

title Windows VISTA


find --set-root /bootmgr_vista
chainloader /bootmgr_vista

title G4L
find --set-root /linux/bz4x10.4
kernel /linux/bz4x10.3 root=/dev/ram0
initrd /linux/ramdisk.lzma

title G4L NOSMP


find --set-root /linux/bz4x10.4
kernel /linux/bz4x10.3 root=/dev/ram0 nosmp
initrd /linux/ramdisk.lzma

title G4L FailSafe


find --set-root /linux/bz4x10.4
kernel /linux/bz4x10.3 root=/dev/ram0 noapic noacpi pnpbios=off acpi=off pci=noacpi nosmp
initrd /linux/ramdisk.lzma

title MEMTEST86+ 5.01


kernel /linux/memtest.bin

title MEMTEST86 v4.3.4


kernel /linux/memtest2

Page 22 of 245
Busybox Configuration File
busybox-1.26.2 configuration file for this release.

#
# Automatically generated make config: don't edit
# Busybox version: 1.26.2
# Wed Jan 11 14:46:34 2017
#
CONFIG_HAVE_DOT_CONFIG=y

#
# Busybox Settings
#
# CONFIG_DESKTOP is not set
# CONFIG_EXTRA_COMPAT is not set
CONFIG_INCLUDE_SUSv2=y
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_PLATFORM_LINUX=y
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_BUSYBOX=y
# CONFIG_FEATURE_INSTALLER is not set
# CONFIG_INSTALL_NO_USR is not set
# CONFIG_PAM is not set
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_UTMP=y
# CONFIG_FEATURE_WTMP is not set
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH=""
CONFIG_FEATURE_SUID=y
CONFIG_FEATURE_SUID_CONFIG=y
CONFIG_FEATURE_SUID_CONFIG_QUIET=y
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_PREFER_APPLETS is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
CONFIG_FEATURE_SYSLOG=y
CONFIG_FEATURE_HAVE_RPC=y

#
# Build Options
#
# CONFIG_STATIC is not set
# CONFIG_PIE is not set
# CONFIG_NOMMU is not set
# CONFIG_BUILD_LIBBUSYBOX is not set
# CONFIG_FEATURE_INDIVIDUAL is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
CONFIG_LFS=y
CONFIG_CROSS_COMPILER_PREFIX=""

Page 23 of 245
CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""

#
# Installation Options ("make install" behavior)
#
CONFIG_INSTALL_APPLET_SYMLINKS=y
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
# CONFIG_INSTALL_APPLET_DONT is not set
# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
CONFIG_PREFIX="./_install"

#
# Debugging Options
#
# CONFIG_DEBUG is not set
# CONFIG_DEBUG_PESSIMIZE is not set
# CONFIG_DEBUG_SANITIZE is not set
# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set

#
# Busybox Library Tuning
#
# CONFIG_FEATURE_USE_BSS_TAIL is not set
CONFIG_FEATURE_RTMINMAX=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
CONFIG_FEATURE_USE_TERMIOS=y
# CONFIG_FEATURE_EDITING is not set
CONFIG_FEATURE_EDITING_MAX_LEN=0
# CONFIG_FEATURE_EDITING_VI is not set
CONFIG_FEATURE_EDITING_HISTORY=0
# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
# CONFIG_FEATURE_REVERSE_SEARCH is not set
# CONFIG_FEATURE_TAB_COMPLETION is not set
# CONFIG_FEATURE_USERNAME_COMPLETION is not set

Page 24 of 245
# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_UNICODE_SUPPORT=y
# CONFIG_UNICODE_USING_LOCALE is not set
# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
CONFIG_SUBST_WCHAR=63
CONFIG_LAST_SUPPORTED_WCHAR=767
# CONFIG_UNICODE_COMBINING_WCHARS is not set
# CONFIG_UNICODE_WIDE_WCHARS is not set
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
CONFIG_FEATURE_NON_POSIX_CP=y
CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
CONFIG_FEATURE_USE_SENDFILE=y
CONFIG_FEATURE_COPYBUF_KB=4
CONFIG_FEATURE_SKIP_ROOTFS=y
CONFIG_MONOTONIC_SYSCALL=y
CONFIG_IOCTL_HEX2STR_ERROR=y
CONFIG_FEATURE_HWIB=y

#
# Applets
#

#
# Archival Utilities
#
CONFIG_FEATURE_SEAMLESS_XZ=y
# CONFIG_FEATURE_SEAMLESS_LZMA is not set
# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
CONFIG_FEATURE_SEAMLESS_GZ=y
CONFIG_FEATURE_SEAMLESS_Z=y
# CONFIG_AR is not set
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
# CONFIG_FEATURE_AR_CREATE is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_GUNZIP is not set
# CONFIG_ZCAT is not set
# CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set
# CONFIG_BUNZIP2 is not set
# CONFIG_BZCAT is not set
# CONFIG_UNLZMA is not set
# CONFIG_LZCAT is not set
# CONFIG_LZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
CONFIG_UNXZ=y
# CONFIG_XZCAT is not set
CONFIG_XZ=y
# CONFIG_BZIP2 is not set
# CONFIG_CPIO is not set

Page 25 of 245
# CONFIG_FEATURE_CPIO_O is not set
# CONFIG_FEATURE_CPIO_P is not set
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_GZIP is not set
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_GZIP_LEVELS is not set
CONFIG_LZOP=y
CONFIG_UNLZOP=y
CONFIG_LZOPCAT=y
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
CONFIG_TAR=y
CONFIG_FEATURE_TAR_CREATE=y
CONFIG_FEATURE_TAR_AUTODETECT=y
# CONFIG_FEATURE_TAR_FROM is not set
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_TO_COMMAND=y
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
# CONFIG_FEATURE_TAR_SELINUX is not set
CONFIG_UNZIP=y

#
# Coreutils
#
CONFIG_BASENAME=y
# CONFIG_CAL is not set
CONFIG_CAT=y
# CONFIG_CATV is not set
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
# CONFIG_CHROOT is not set
# CONFIG_CKSUM is not set
CONFIG_COMM=y
CONFIG_CP=y
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
# CONFIG_FEATURE_DATE_NANO is not set
CONFIG_FEATURE_DATE_COMPAT=y
# CONFIG_DD is not set
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set

Page 26 of 245
# CONFIG_FEATURE_DD_IBS_OBS is not set
# CONFIG_FEATURE_DD_STATUS is not set
CONFIG_DF=y
# CONFIG_FEATURE_DF_FANCY is not set
CONFIG_DIRNAME=y
CONFIG_DOS2UNIX=y
CONFIG_UNIX2DOS=y
CONFIG_DU=y
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ENV=y
# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
# CONFIG_EXPAND is not set
# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
# CONFIG_UNEXPAND is not set
# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
CONFIG_EXPR=y
# CONFIG_EXPR_MATH_SUPPORT_64 is not set
CONFIG_FALSE=y
# CONFIG_FOLD is not set
# CONFIG_FSYNC is not set
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_GROUPS=y
CONFIG_INSTALL=y
# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
CONFIG_LN=y
CONFIG_LOGNAME=y
CONFIG_LS=y
CONFIG_FEATURE_LS_FILETYPES=y
CONFIG_FEATURE_LS_FOLLOWLINKS=y
CONFIG_FEATURE_LS_RECURSIVE=y
CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
CONFIG_FEATURE_LS_COLOR=y
# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
CONFIG_MD5SUM=y
# CONFIG_SHA1SUM is not set
# CONFIG_SHA256SUM is not set
# CONFIG_SHA512SUM is not set
CONFIG_SHA3SUM=y

#
# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
#
# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
CONFIG_MKDIR=y
# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set

Page 27 of 245
CONFIG_MKFIFO=y
CONFIG_MKNOD=y
CONFIG_MV=y
# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
# CONFIG_NICE is not set
# CONFIG_NOHUP is not set
# CONFIG_OD is not set
CONFIG_PRINTENV=y
CONFIG_PRINTF=y
CONFIG_PWD=y
# CONFIG_READLINK is not set
# CONFIG_FEATURE_READLINK_FOLLOW is not set
# CONFIG_REALPATH is not set
CONFIG_RM=y
CONFIG_RMDIR=y
# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
# CONFIG_SEQ is not set
CONFIG_SHUF=y
CONFIG_SLEEP=y
# CONFIG_FEATURE_FANCY_SLEEP is not set
# CONFIG_FEATURE_FLOAT_SLEEP is not set
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
# CONFIG_SPLIT is not set
# CONFIG_FEATURE_SPLIT_FANCY is not set
CONFIG_STAT=y
# CONFIG_FEATURE_STAT_FORMAT is not set
CONFIG_FEATURE_STAT_FILESYSTEM=y
CONFIG_STTY=y
# CONFIG_SUM is not set
CONFIG_SYNC=y
CONFIG_FEATURE_SYNC_FANCY=y
# CONFIG_TAC is not set
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TEST=y
CONFIG_TEST1=y
CONFIG_TEST2=y
# CONFIG_FEATURE_TEST_64 is not set
CONFIG_TOUCH=y
CONFIG_FEATURE_TOUCH_NODEREF=y
CONFIG_FEATURE_TOUCH_SUSV3=y
CONFIG_TR=y
# CONFIG_FEATURE_TR_CLASSES is not set
# CONFIG_FEATURE_TR_EQUIV is not set
CONFIG_TRUE=y
CONFIG_TRUNCATE=y
CONFIG_TTY=y
CONFIG_UNAME=y
CONFIG_UNAME_OSNAME="GNU/Linux"

Page 28 of 245
CONFIG_UNIQ=y
CONFIG_UNLINK=y
# CONFIG_USLEEP is not set
CONFIG_UUDECODE=y
CONFIG_BASE64=y
CONFIG_UUENCODE=y
CONFIG_WC=y
# CONFIG_FEATURE_WC_LARGE is not set
CONFIG_WHOAMI=y
CONFIG_WHO=y
CONFIG_USERS=y
CONFIG_YES=y

#
# Common options
#
CONFIG_FEATURE_VERBOSE=y

#
# Common options for cp and mv
#
CONFIG_FEATURE_PRESERVE_HARDLINKS=y

#
# Common options for ls, more and telnet
#
CONFIG_FEATURE_AUTOWIDTH=y

#
# Common options for df, du, ls
#
CONFIG_FEATURE_HUMAN_READABLE=y

#
# Console Utilities
#
CONFIG_CHVT=y
CONFIG_CLEAR=y
CONFIG_DEALLOCVT=y
CONFIG_DUMPKMAP=y
CONFIG_FGCONSOLE=y
# CONFIG_KBD_MODE is not set
CONFIG_LOADFONT=y
# CONFIG_SETFONT is not set
# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
CONFIG_DEFAULT_SETFONT_DIR=""

#
# Common options for loadfont and setfont
#
CONFIG_FEATURE_LOADFONT_PSF2=y
CONFIG_FEATURE_LOADFONT_RAW=y

Page 29 of 245
CONFIG_LOADKMAP=y
CONFIG_OPENVT=y
CONFIG_RESET=y
# CONFIG_RESIZE is not set
# CONFIG_FEATURE_RESIZE_PRINT is not set
# CONFIG_SETCONSOLE is not set
# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
CONFIG_SETKEYCODES=y
# CONFIG_SETLOGCONS is not set
# CONFIG_SHOWKEY is not set

#
# Debian Utilities
#
# CONFIG_MKTEMP is not set
# CONFIG_PIPE_PROGRESS is not set
# CONFIG_RUN_PARTS is not set
# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
# CONFIG_START_STOP_DAEMON is not set
# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
CONFIG_WHICH=y

#
# Editors
#
CONFIG_AWK=y
# CONFIG_FEATURE_AWK_LIBM is not set
CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
CONFIG_CMP=y
CONFIG_DIFF=y
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
CONFIG_FEATURE_DIFF_DIR=y
# CONFIG_ED is not set
# CONFIG_PATCH is not set
CONFIG_SED=y
# CONFIG_VI is not set
CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_8BIT is not set
# CONFIG_FEATURE_VI_COLON is not set
# CONFIG_FEATURE_VI_YANKMARK is not set
# CONFIG_FEATURE_VI_SEARCH is not set
# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
# CONFIG_FEATURE_VI_USE_SIGNALS is not set
# CONFIG_FEATURE_VI_DOT_CMD is not set
# CONFIG_FEATURE_VI_READONLY is not set
# CONFIG_FEATURE_VI_SETOPTS is not set
# CONFIG_FEATURE_VI_SET is not set
# CONFIG_FEATURE_VI_WIN_RESIZE is not set
# CONFIG_FEATURE_VI_ASK_TERMINAL is not set
# CONFIG_FEATURE_VI_UNDO is not set

Page 30 of 245
# CONFIG_FEATURE_VI_UNDO_QUEUE is not set
CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
CONFIG_FEATURE_ALLOW_EXEC=y

#
# Finding Utilities
#
CONFIG_FIND=y
CONFIG_FEATURE_FIND_PRINT0=y
CONFIG_FEATURE_FIND_MTIME=y
CONFIG_FEATURE_FIND_MMIN=y
CONFIG_FEATURE_FIND_PERM=y
CONFIG_FEATURE_FIND_TYPE=y
CONFIG_FEATURE_FIND_XDEV=y
CONFIG_FEATURE_FIND_MAXDEPTH=y
# CONFIG_FEATURE_FIND_NEWER is not set
# CONFIG_FEATURE_FIND_INUM is not set
CONFIG_FEATURE_FIND_EXEC=y
CONFIG_FEATURE_FIND_EXEC_PLUS=y
CONFIG_FEATURE_FIND_USER=y
CONFIG_FEATURE_FIND_GROUP=y
CONFIG_FEATURE_FIND_NOT=y
CONFIG_FEATURE_FIND_DEPTH=y
CONFIG_FEATURE_FIND_PAREN=y
CONFIG_FEATURE_FIND_SIZE=y
CONFIG_FEATURE_FIND_PRUNE=y
# CONFIG_FEATURE_FIND_DELETE is not set
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
# CONFIG_FEATURE_FIND_CONTEXT is not set
# CONFIG_FEATURE_FIND_LINKS is not set
CONFIG_GREP=y
CONFIG_EGREP=y
CONFIG_FGREP=y
CONFIG_FEATURE_GREP_CONTEXT=y
CONFIG_XARGS=y
# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y

#
# Init Utilities
#
CONFIG_BOOTCHARTD=y
CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
CONFIG_HALT=y
CONFIG_POWEROFF=y
CONFIG_REBOOT=y
# CONFIG_FEATURE_CALL_TELINIT is not set

Page 31 of 245
CONFIG_TELINIT_PATH=""
CONFIG_INIT=y
CONFIG_LINUXRC=y
CONFIG_FEATURE_USE_INITTAB=y
CONFIG_FEATURE_KILL_REMOVED=y
CONFIG_FEATURE_KILL_DELAY=0
# CONFIG_FEATURE_INIT_SCTTY is not set
# CONFIG_FEATURE_INIT_SYSLOG is not set
CONFIG_FEATURE_EXTRA_QUIET=y
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_INIT_TERMINAL_TYPE="linux"
CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y
CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y

#
# Login/Password Management Utilities
#
# CONFIG_FEATURE_SHADOWPASSWDS is not set
CONFIG_USE_BB_PWD_GRP=y
# CONFIG_USE_BB_SHADOW is not set
CONFIG_USE_BB_CRYPT=y
# CONFIG_USE_BB_CRYPT_SHA is not set
# CONFIG_ADDGROUP is not set
# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
# CONFIG_ADD_SHELL is not set
# CONFIG_REMOVE_SHELL is not set
# CONFIG_ADDUSER is not set
# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=0
CONFIG_FIRST_SYSTEM_ID=0
CONFIG_LAST_SYSTEM_ID=0
# CONFIG_CHPASSWD is not set
CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
# CONFIG_CRYPTPW is not set
CONFIG_MKPASSWD=y
# CONFIG_DELUSER is not set
# CONFIG_DELGROUP is not set
# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
# CONFIG_GETTY is not set
CONFIG_LOGIN=y
# CONFIG_LOGIN_SESSION_AS_CHILD is not set
# CONFIG_LOGIN_SCRIPTS is not set
CONFIG_FEATURE_NOLOGIN=y
CONFIG_FEATURE_SECURETTY=y
# CONFIG_PASSWD is not set
# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
# CONFIG_SU is not set
# CONFIG_FEATURE_SU_SYSLOG is not set
# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set

Page 32 of 245
# CONFIG_SULOGIN is not set
# CONFIG_VLOCK is not set

#
# Linux Ext2 FS Progs
#
# CONFIG_CHATTR is not set
# CONFIG_FSCK is not set
# CONFIG_LSATTR is not set
# CONFIG_TUNE2FS is not set

#
# Linux Module Utilities
#
# CONFIG_MODPROBE_SMALL is not set
# CONFIG_DEPMOD is not set
CONFIG_INSMOD=y
CONFIG_LSMOD=y
# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
CONFIG_MODINFO=y
CONFIG_MODPROBE=y
# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
CONFIG_RMMOD=y

#
# Options common to multiple modutils
#
# CONFIG_FEATURE_2_4_MODULES is not set
# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
CONFIG_FEATURE_MODUTILS_ALIAS=y
CONFIG_FEATURE_MODUTILS_SYMBOLS=y
CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"

#
# Linux System Utilities
#
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
CONFIG_BLKDISCARD=y
# CONFIG_BLKID is not set
# CONFIG_FEATURE_BLKID_TYPE is not set
CONFIG_BLOCKDEV=y
CONFIG_DMESG=y

Page 33 of 245
CONFIG_FEATURE_DMESG_PRETTY=y
CONFIG_FATATTR=y
# CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set
# CONFIG_FEATURE_FBSET_READMODE is not set
CONFIG_FDFORMAT=y
CONFIG_FDISK=y
# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
CONFIG_FEATURE_FDISK_WRITABLE=y
# CONFIG_FEATURE_AIX_LABEL is not set
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set
# CONFIG_FEATURE_GPT_LABEL is not set
# CONFIG_FEATURE_FDISK_ADVANCED is not set
# CONFIG_FINDFS is not set
CONFIG_FLOCK=y
CONFIG_FDFLUSH=y
CONFIG_FREERAMDISK=y
CONFIG_FSCK_MINIX=y
CONFIG_FSTRIM=y
CONFIG_GETOPT=y
CONFIG_FEATURE_GETOPT_LONG=y
CONFIG_HEXDUMP=y
# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
# CONFIG_HD is not set
CONFIG_HWCLOCK=y
# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
CONFIG_LOSETUP=y
# CONFIG_LSPCI is not set
# CONFIG_LSUSB is not set
CONFIG_MDEV=y
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_RENAME is not set
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
# CONFIG_MKE2FS is not set
# CONFIG_MKFS_EXT2 is not set
CONFIG_MKFS_MINIX=y
CONFIG_FEATURE_MINIX2=y
# CONFIG_MKFS_REISER is not set
CONFIG_MKDOSFS=y
CONFIG_MKFS_VFAT=y
CONFIG_MKSWAP=y
# CONFIG_FEATURE_MKSWAP_UUID is not set
CONFIG_MORE=y
CONFIG_MOUNT=y
# CONFIG_FEATURE_MOUNT_FAKE is not set

Page 34 of 245
# CONFIG_FEATURE_MOUNT_VERBOSE is not set
CONFIG_FEATURE_MOUNT_HELPERS=y
# CONFIG_FEATURE_MOUNT_LABEL is not set
CONFIG_FEATURE_MOUNT_NFS=y
CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y
CONFIG_FEATURE_MOUNT_OTHERTAB=y
CONFIG_NSENTER=y
CONFIG_FEATURE_NSENTER_LONG_OPTS=y
CONFIG_PIVOT_ROOT=y
CONFIG_RDATE=y
# CONFIG_RDEV is not set
# CONFIG_READPROFILE is not set
CONFIG_REV=y
# CONFIG_RTCWAKE is not set
# CONFIG_SCRIPT is not set
# CONFIG_SCRIPTREPLAY is not set
# CONFIG_SETARCH is not set
# CONFIG_LINUX32 is not set
# CONFIG_LINUX64 is not set
CONFIG_SWAPON=y
CONFIG_FEATURE_SWAPON_DISCARD=y
# CONFIG_FEATURE_SWAPON_PRI is not set
CONFIG_SWAPOFF=y
# CONFIG_SWITCH_ROOT is not set
CONFIG_UEVENT=y
CONFIG_UMOUNT=y
# CONFIG_FEATURE_UMOUNT_ALL is not set
CONFIG_UNSHARE=y

#
# Common options for mount/umount
#
CONFIG_FEATURE_MOUNT_LOOP=y
CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
# CONFIG_VOLUMEID is not set
# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_F2FS is not set
# CONFIG_FEATURE_VOLUMEID_FAT is not set
# CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
# CONFIG_FEATURE_VOLUMEID_NILFS is not set

Page 35 of 245
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
# CONFIG_FEATURE_VOLUMEID_SYSV is not set
# CONFIG_FEATURE_VOLUMEID_UBIFS is not set
# CONFIG_FEATURE_VOLUMEID_UDF is not set
# CONFIG_FEATURE_VOLUMEID_XFS is not set

#
# Miscellaneous Utilities
#
# CONFIG_ADJTIMEX is not set
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
CONFIG_BEEP=y
CONFIG_FEATURE_BEEP_FREQ=4000
CONFIG_FEATURE_BEEP_LENGTH_MS=30
# CONFIG_CHAT is not set
# CONFIG_FEATURE_CHAT_NOFAIL is not set
# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
# CONFIG_CHRT is not set
# CONFIG_CONSPY is not set
# CONFIG_CROND is not set
# CONFIG_FEATURE_CROND_D is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_FEATURE_CROND_DIR=""
# CONFIG_CRONTAB is not set
# CONFIG_DC is not set
# CONFIG_FEATURE_DC_LIBM is not set
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_DEVMEM is not set
CONFIG_EJECT=y
CONFIG_FEATURE_EJECT_SCSI=y
# CONFIG_FBSPLASH is not set
# CONFIG_FLASHCP is not set
# CONFIG_FLASH_ERASEALL is not set
# CONFIG_FLASH_LOCK is not set
# CONFIG_FLASH_UNLOCK is not set
CONFIG_HDPARM=y
CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set

Page 36 of 245
# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
CONFIG_I2CGET=y
CONFIG_I2CSET=y
CONFIG_I2CDUMP=y
CONFIG_I2CDETECT=y
# CONFIG_INOTIFYD is not set
# CONFIG_IONICE is not set
# CONFIG_LAST is not set
# CONFIG_FEATURE_LAST_FANCY is not set
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
CONFIG_FEATURE_LESS_FLAGS=y
CONFIG_FEATURE_LESS_TRUNCATE=y
# CONFIG_FEATURE_LESS_MARKS is not set
# CONFIG_FEATURE_LESS_REGEXP is not set
# CONFIG_FEATURE_LESS_WINCH is not set
# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
# CONFIG_FEATURE_LESS_DASHCMD is not set
# CONFIG_FEATURE_LESS_LINENUMS is not set
CONFIG_MAKEDEVS=y
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
CONFIG_FEATURE_MAKEDEVS_TABLE=y
# CONFIG_MAN is not set
# CONFIG_MICROCOM is not set
# CONFIG_MOUNTPOINT is not set
# CONFIG_MT is not set
# CONFIG_NANDWRITE is not set
# CONFIG_NANDDUMP is not set
CONFIG_RAIDAUTORUN=y
# CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
CONFIG_SETSERIAL=y
# CONFIG_SETSID is not set
CONFIG_STRINGS=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_TIME=y
# CONFIG_TIMEOUT is not set
# CONFIG_TTYSIZE is not set
CONFIG_UBIRENAME=y
# CONFIG_UBIATTACH is not set
# CONFIG_UBIDETACH is not set
CONFIG_UBIMKVOL=y
CONFIG_UBIRMVOL=y
CONFIG_UBIRSVOL=y
CONFIG_UBIUPDATEVOL=y

Page 37 of 245
# CONFIG_VOLNAME is not set
# CONFIG_WALL is not set
CONFIG_WATCHDOG=y

#
# Networking Utilities
#
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_FEATURE_UNIX_LOCAL is not set
# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
# CONFIG_ARP is not set
CONFIG_ARPING=y
# CONFIG_BRCTL is not set
# CONFIG_FEATURE_BRCTL_FANCY is not set
# CONFIG_FEATURE_BRCTL_SHOW is not set
CONFIG_DNSD=y
# CONFIG_ETHER_WAKE is not set
CONFIG_FTPD=y
CONFIG_FEATURE_FTPD_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
CONFIG_FEATURE_FTPD_AUTHENTICATION=y
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
CONFIG_HOSTNAME=y
CONFIG_DNSDOMAINNAME=y
# CONFIG_HTTPD is not set
# CONFIG_FEATURE_HTTPD_RANGES is not set
# CONFIG_FEATURE_HTTPD_SETUID is not set
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
# CONFIG_FEATURE_HTTPD_CGI is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
# CONFIG_FEATURE_HTTPD_PROXY is not set
# CONFIG_FEATURE_HTTPD_GZIP is not set
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
# CONFIG_FEATURE_IFCONFIG_SLIP is not set
# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
# CONFIG_FEATURE_IFCONFIG_HW is not set
# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
# CONFIG_IFENSLAVE is not set
# CONFIG_IFPLUGD is not set
CONFIG_IFUP=y
CONFIG_IFDOWN=y
CONFIG_IFUPDOWN_IFSTATE_PATH=""
# CONFIG_FEATURE_IFUPDOWN_IP is not set
# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set

Page 38 of 245
# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
CONFIG_INETD=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
# CONFIG_FEATURE_INETD_RPC is not set
CONFIG_IP=y
CONFIG_IPADDR=y
CONFIG_IPLINK=y
CONFIG_IPROUTE=y
CONFIG_IPTUNNEL=y
# CONFIG_IPRULE is not set
CONFIG_IPNEIGH=y
CONFIG_FEATURE_IP_ADDRESS=y
CONFIG_FEATURE_IP_LINK=y
CONFIG_FEATURE_IP_ROUTE=y
CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
CONFIG_FEATURE_IP_TUNNEL=y
# CONFIG_FEATURE_IP_RULE is not set
CONFIG_FEATURE_IP_NEIGH=y
# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
CONFIG_IPCALC=y
CONFIG_FEATURE_IPCALC_FANCY=y
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
# CONFIG_FAKEIDENTD is not set
# CONFIG_NAMEIF is not set
# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
CONFIG_NBDCLIENT=y
CONFIG_NC=y
# CONFIG_NC_SERVER is not set
# CONFIG_NC_EXTRA is not set
CONFIG_NC_110_COMPAT=y
CONFIG_NETSTAT=y
# CONFIG_FEATURE_NETSTAT_WIDE is not set
# CONFIG_FEATURE_NETSTAT_PRG is not set
CONFIG_NSLOOKUP=y
# CONFIG_NTPD is not set
# CONFIG_FEATURE_NTPD_SERVER is not set
# CONFIG_FEATURE_NTPD_CONF is not set
CONFIG_PING=y
# CONFIG_PING6 is not set
CONFIG_FEATURE_FANCY_PING=y
# CONFIG_PSCAN is not set
CONFIG_ROUTE=y
# CONFIG_SLATTACH is not set
CONFIG_TCPSVD=y
# CONFIG_UDPSVD is not set
CONFIG_TELNET=y

Page 39 of 245
CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
CONFIG_TELNETD=y
CONFIG_FEATURE_TELNETD_STANDALONE=y
# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
# CONFIG_TFTP is not set
# CONFIG_TFTPD is not set
# CONFIG_FEATURE_TFTP_GET is not set
# CONFIG_FEATURE_TFTP_PUT is not set
# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
# CONFIG_TFTP_DEBUG is not set
CONFIG_TRACEROUTE=y
# CONFIG_TRACEROUTE6 is not set
CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
# CONFIG_TUNCTL is not set
# CONFIG_FEATURE_TUNCTL_UG is not set
# CONFIG_VCONFIG is not set
# CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_FEATURE_WGET_OPENSSL is not set
# CONFIG_FEATURE_WGET_SSL_HELPER is not set
CONFIG_WHOIS=y
# CONFIG_ZCIP is not set
# CONFIG_UDHCPC6 is not set
CONFIG_UDHCPD=y
CONFIG_DHCPRELAY=y
CONFIG_DUMPLEASES=y
CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
CONFIG_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=0
# CONFIG_FEATURE_UDHCP_RFC3397 is not set
CONFIG_FEATURE_UDHCP_8021Q=y
CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""

#
# Print Utilities
#
# CONFIG_LPD is not set
# CONFIG_LPR is not set
# CONFIG_LPQ is not set

Page 40 of 245
#
# Mail Utilities
#
# CONFIG_MAKEMIME is not set
# CONFIG_POPMAILDIR is not set
# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
# CONFIG_REFORMIME is not set
# CONFIG_FEATURE_REFORMIME_COMPAT is not set
# CONFIG_SENDMAIL is not set
CONFIG_FEATURE_MIME_CHARSET=""

#
# Process Utilities
#
CONFIG_FREE=y
# CONFIG_FUSER is not set
CONFIG_IOSTAT=y
CONFIG_KILL=y
CONFIG_KILLALL=y
# CONFIG_KILLALL5 is not set
CONFIG_LSOF=y
CONFIG_MPSTAT=y
# CONFIG_NMETER is not set
# CONFIG_PGREP is not set
# CONFIG_PKILL is not set
CONFIG_PIDOF=y
# CONFIG_FEATURE_PIDOF_SINGLE is not set
# CONFIG_FEATURE_PIDOF_OMIT is not set
CONFIG_PMAP=y
CONFIG_POWERTOP=y
CONFIG_PS=y
# CONFIG_FEATURE_PS_WIDE is not set
CONFIG_FEATURE_PS_LONG=y
# CONFIG_FEATURE_PS_TIME is not set
# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
CONFIG_PSTREE=y
CONFIG_PWDX=y
CONFIG_RENICE=y
CONFIG_SMEMCAP=y
# CONFIG_BB_SYSCTL is not set
CONFIG_TOP=y
CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
# CONFIG_FEATURE_TOP_SMP_CPU is not set
# CONFIG_FEATURE_TOP_DECIMALS is not set
# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
# CONFIG_FEATURE_TOPMEM is not set
CONFIG_UPTIME=y
CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
# CONFIG_WATCH is not set

Page 41 of 245
# CONFIG_FEATURE_SHOW_THREADS is not set

#
# Runit Utilities
#
# CONFIG_CHPST is not set
# CONFIG_SETUIDGID is not set
# CONFIG_ENVUIDGID is not set
# CONFIG_ENVDIR is not set
# CONFIG_SOFTLIMIT is not set
# CONFIG_RUNSV is not set
# CONFIG_RUNSVDIR is not set
# CONFIG_FEATURE_RUNSVDIR_LOG is not set
# CONFIG_SV is not set
CONFIG_SV_DEFAULT_SERVICE_DIR=""
# CONFIG_SVC is not set
# CONFIG_SVLOGD is not set
# CONFIG_CHCON is not set
# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
# CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set
# CONFIG_LOAD_POLICY is not set
# CONFIG_MATCHPATHCON is not set
# CONFIG_RUNCON is not set
# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
# CONFIG_SELINUXENABLED is not set
# CONFIG_SESTATUS is not set
# CONFIG_SETENFORCE is not set
# CONFIG_SETFILES is not set
# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
# CONFIG_RESTORECON is not set
# CONFIG_SETSEBOOL is not set

#
# Shells
#
# CONFIG_SH_IS_ASH is not set
# CONFIG_SH_IS_HUSH is not set
CONFIG_SH_IS_NONE=y
# CONFIG_BASH_IS_ASH is not set
# CONFIG_BASH_IS_HUSH is not set
CONFIG_BASH_IS_NONE=y
# CONFIG_ASH is not set
# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
# CONFIG_ASH_INTERNAL_GLOB is not set
# CONFIG_ASH_RANDOM_SUPPORT is not set
# CONFIG_ASH_EXPAND_PRMT is not set
# CONFIG_ASH_BASH_COMPAT is not set
# CONFIG_ASH_IDLE_TIMEOUT is not set
# CONFIG_ASH_JOB_CONTROL is not set
# CONFIG_ASH_ALIAS is not set
# CONFIG_ASH_GETOPTS is not set

Page 42 of 245
# CONFIG_ASH_BUILTIN_ECHO is not set
# CONFIG_ASH_BUILTIN_PRINTF is not set
# CONFIG_ASH_BUILTIN_TEST is not set
# CONFIG_ASH_HELP is not set
# CONFIG_ASH_CMDCMD is not set
# CONFIG_ASH_MAIL is not set
# CONFIG_CTTYHACK is not set
# CONFIG_HUSH is not set
# CONFIG_HUSH_BASH_COMPAT is not set
# CONFIG_HUSH_BRACE_EXPANSION is not set
# CONFIG_HUSH_HELP is not set
# CONFIG_HUSH_INTERACTIVE is not set
# CONFIG_HUSH_SAVEHISTORY is not set
# CONFIG_HUSH_JOB is not set
# CONFIG_HUSH_TICK is not set
# CONFIG_HUSH_IF is not set
# CONFIG_HUSH_LOOPS is not set
# CONFIG_HUSH_CASE is not set
# CONFIG_HUSH_FUNCTIONS is not set
# CONFIG_HUSH_LOCAL is not set
# CONFIG_HUSH_RANDOM_SUPPORT is not set
# CONFIG_HUSH_EXPORT_N is not set
# CONFIG_HUSH_MODE_X is not set
# CONFIG_MSH is not set
# CONFIG_FEATURE_SH_MATH is not set
# CONFIG_FEATURE_SH_MATH_64 is not set
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
# CONFIG_FEATURE_SH_HISTFILESIZE is not set

#
# System Logging Utilities
#
CONFIG_KLOGD=y

#
# klogd should not be used together with syslog to kernel printk buffer
#
CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y
# CONFIG_LOGREAD is not set
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
# CONFIG_FEATURE_REMOTE_LOG is not set
# CONFIG_FEATURE_SYSLOGD_DUP is not set
CONFIG_FEATURE_SYSLOGD_CFG=y
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
CONFIG_FEATURE_KMSG_SYSLOG=y

Page 43 of 245
Kernel Configuration file for bz4x10.4 4.10.4
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.10.4 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_MMU=y
CONFIG_ARCH_MMAP_RND_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_BITS_MAX=16
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_SMP=y
CONFIG_X86_32_LAZY_GS=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEBUG_RODATA=y
CONFIG_PGTABLE_LEVELS=2
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32

Page 44 of 245
CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
CONFIG_USELIB=y
# CONFIG_AUDIT is not set
CONFIG_HAVE_ARCH_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y

Page 45 of 245
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_EXPEDITE_BOOT is not set
# CONFIG_BUILD_BIN2C is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_NMI_LOG_BUF_SHIFT=13
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
# CONFIG_CGROUPS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
CONFIG_USER_NS=y
# CONFIG_PID_NS is not set
# CONFIG_NET_NS is not set
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
CONFIG_INITRAMFS_COMPRESSION=".gz"
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set

Page 46 of 245
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BPF=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_POSIX_TIMERS=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_PRINTK=y
CONFIG_PRINTK_NMI=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
# CONFIG_BPF_SYSCALL is not set
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
# CONFIG_USERFAULTFD is not set
CONFIG_PCI_QUIRKS=y
CONFIG_MEMBARRIER=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y

Page 47 of 245
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_NMI=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_HAVE_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR is not set
CONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=8
CONFIG_HAVE_COPY_THREAD_TLS=y
# CONFIG_HAVE_ARCH_HASH is not set
CONFIG_ISA_BUS_API=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y

Page 48 of 245
# CONFIG_CPU_NO_EFFICIENT_FFS is not set
# CONFIG_HAVE_ARCH_VMAP_STACK is not set

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_CMDLINE_PARSER=y
# CONFIG_BLK_WBT is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_AIX_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
CONFIG_LDM_DEBUG=y
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y

Page 49 of 245
# CONFIG_SYSV68_PARTITION is not set
CONFIG_CMDLINE_PARTITION=y
CONFIG_BLK_MQ_PCI=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_FREEZER=y

#
# Processor type and features
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_BIGSMP=y
# CONFIG_GOLDFISH is not set
# CONFIG_INTEL_RDT_A is not set
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_INTEL_MID is not set
# CONFIG_X86_INTEL_LPSS is not set
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
CONFIG_IOSF_MBI=y
# CONFIG_IOSF_MBI_DEBUG is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_32_NON_STANDARD is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_X86_32_IRIS is not set
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_HYPERVISOR_GUEST is not set
CONFIG_NO_BOOTMEM=y
# CONFIG_M486 is not set
CONFIG_M586=y

Page 50 of 245
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MELAN is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
# CONFIG_X86_PPRO_FENCE is not set
CONFIG_X86_F00F_BUG=y
CONFIG_X86_ALIGNMENT_16=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_HPET_TIMER=y
CONFIG_DMI=y
CONFIG_NR_CPUS=8
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
CONFIG_SCHED_MC_PRIO=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
# CONFIG_X86_ANCIENT_MCE is not set
CONFIG_X86_MCE_THRESHOLD=y

Page 51 of 245
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y

#
# Performance monitoring
#
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PERF_EVENTS_INTEL_RAPL=y
CONFIG_PERF_EVENTS_INTEL_CSTATE=y
# CONFIG_PERF_EVENTS_AMD_POWER is not set
# CONFIG_X86_LEGACY_VM86 is not set
# CONFIG_VM86 is not set
CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX32=y
CONFIG_TOSHIBA=y
CONFIG_I8K=y
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
# CONFIG_TRANSPARENT_HUGEPAGE is not set

Page 52 of 245
# CONFIG_CLEANCACHE is not set
# CONFIG_CMA is not set
# CONFIG_ZPOOL is not set
# CONFIG_ZBUD is not set
# CONFIG_ZSMALLOC is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_HIGHPTE=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW=64
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_X86_SMAP=y
# CONFIG_X86_INTEL_MPX is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
# CONFIG_SECCOMP is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
# CONFIG_RANDOMIZE_BASE is not set
CONFIG_X86_NEED_RELOCS=y
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management and ACPI options
#
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set

Page 53 of 245
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
# CONFIG_ACPI_BUTTON is not set
# CONFIG_ACPI_VIDEO is not set
# CONFIG_ACPI_FAN is not set
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_HOTPLUG_IOAPIC=y
# CONFIG_ACPI_SBS is not set
# CONFIG_ACPI_HED is not set
# CONFIG_ACPI_CUSTOM_METHOD is not set
# CONFIG_ACPI_BGRT is not set
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
# CONFIG_ACPI_APEI is not set
# CONFIG_DPTF_POWER is not set
# CONFIG_ACPI_EXTLOG is not set
# CONFIG_PMIC_OPREGION is not set
CONFIG_ACPI_CONFIGFS=y
# CONFIG_SFI is not set
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y

Page 54 of 245
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set

#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
# CONFIG_X86_PCC_CPUFREQ is not set
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set

#
# shared options
#
# CONFIG_X86_SPEEDSTEP_LIB is not set

#
# CPU Idle
#
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
CONFIG_INTEL_IDLE=y

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set

Page 55 of 245
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
# CONFIG_PCI_GOOLPC is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_OLPC=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
# CONFIG_PCIE_ECRC is not set
# CONFIG_PCIEAER_INJECT is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
# CONFIG_PCIE_DPC is not set
# CONFIG_PCIE_PTM is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_DEBUG=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
CONFIG_HT_IRQ=y
# CONFIG_PCI_IOV is not set
# CONFIG_PCI_PRI is not set
# CONFIG_PCI_PASID is not set
CONFIG_PCI_LABEL=y
# CONFIG_HOTPLUG_PCI is not set

#
# PCI host controller drivers
#
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
CONFIG_EISA=y
CONFIG_EISA_VLB_PRIMING=y
CONFIG_EISA_PCI_EISA=y
CONFIG_EISA_VIRTUAL_ROOT=y
CONFIG_EISA_NAMES=y
# CONFIG_SCx200 is not set
CONFIG_OLPC=y
# CONFIG_OLPC_XO15_SCI is not set
# CONFIG_ALIX is not set
# CONFIG_NET5501 is not set
# CONFIG_GEOS is not set
CONFIG_AMD_NB=y
CONFIG_PCCARD=y

Page 56 of 245
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=y
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
CONFIG_PD6729=y
CONFIG_I82092=y
# CONFIG_I82365 is not set
# CONFIG_TCIC is not set
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=y
# CONFIG_RAPIDIO is not set
CONFIG_X86_SYSFB=y

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_ELFCORE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
CONFIG_COMPAT_32=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y
# CONFIG_UNIX_DIAG is not set
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_NET_KEY=y

Page 57 of 245
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_FIB_TRIE_STATS is not set
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=y
# CONFIG_IP_MROUTE is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_NET_UDP_TUNNEL=y
# CONFIG_NET_FOU is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_INET_UDP_DIAG is not set
# CONFIG_INET_RAW_DIAG is not set
# CONFIG_INET_DIAG_DESTROY is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
CONFIG_L2TP=y
# CONFIG_L2TP_DEBUGFS is not set
# CONFIG_L2TP_V3 is not set
CONFIG_STP=y
CONFIG_GARP=y
# CONFIG_BRIDGE is not set
CONFIG_HAVE_NET_DSA=y
CONFIG_VLAN_8021Q=y

Page 58 of 245
CONFIG_VLAN_8021Q_GVRP=y
# CONFIG_VLAN_8021Q_MVRP is not set
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=y
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
# CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_NET_FLOW_LIMIT=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set
# CONFIG_STREAM_PARSER is not set
CONFIG_FIB_RULES=y
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
# CONFIG_LWTUNNEL is not set
CONFIG_DST_CACHE=y
# CONFIG_NET_DEVLINK is not set

Page 59 of 245
CONFIG_MAY_USE_DEVLINK=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
CONFIG_ALLOW_DEV_COREDUMP=y
CONFIG_DEBUG_DRIVER=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_REGMAP=y
CONFIG_REGMAP_MMIO=y
# CONFIG_DMA_SHARED_BUFFER is not set

#
# Bus devices
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_OF=y
# CONFIG_OF_UNITTEST is not set
CONFIG_OF_PROMTREE=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_ADDRESS_PCI=y
CONFIG_OF_IRQ=y
CONFIG_OF_NET=y
CONFIG_OF_MDIO=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
# CONFIG_OF_OVERLAY is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
# CONFIG_PARPORT is not set
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

Page 60 of 245
#
# Protocols
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
CONFIG_BLK_CPQ_CISS_DA=y
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=y
CONFIG_BLK_DEV_UMEM=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=y
# CONFIG_BLK_DEV_DRBD is not set
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_SX8=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=147456
# CONFIG_CDROM_PKTCDVD is not set
CONFIG_ATA_OVER_ETH=y
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set
CONFIG_NVME_CORE=y
CONFIG_BLK_DEV_NVME=y
CONFIG_BLK_DEV_NVME_SCSI=y
# CONFIG_NVME_FC is not set
# CONFIG_NVME_TARGET is not set

#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
CONFIG_IBM_ASM=y
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set

Page 61 of 245
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_PCH_PHUB is not set
# CONFIG_USB_SWITCH_FSA9480 is not set
# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set

#
# EEPROM support
#
# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
CONFIG_EEPROM_93CX6=y
# CONFIG_CB710_CORE is not set

#
# Texas Instruments shared transport line discipline
#
# CONFIG_TI_ST is not set
# CONFIG_SENSORS_LIS3_I2C is not set

#
# Altera FPGA firmware download module
#
# CONFIG_ALTERA_STAPL is not set
# CONFIG_INTEL_MEI is not set
# CONFIG_INTEL_MEI_ME is not set
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_VMWARE_VMCI is not set

#
# Intel MIC Bus Driver
#

#
# SCIF Bus Driver
#

#
# VOP Bus Driver
#

#
# Intel MIC Host Driver
#

#
# Intel MIC Card Driver

Page 62 of 245
#

#
# SCIF Driver
#

#
# Intel MIC Coprocessor State Management (COSM) Drivers
#

#
# VOP Driver
#
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
# CONFIG_CXL_AFU_DRIVER_OPS is not set
CONFIG_HAVE_IDE=y
CONFIG_IDE=y

#
# Please see Documentation/ide/ide.txt for help/info on IDE drives
#
CONFIG_IDE_XFER_MODE=y
CONFIG_IDE_TIMINGS=y
CONFIG_IDE_ATAPI=y
CONFIG_IDE_LEGACY=y
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
# CONFIG_IDE_GD_ATAPI is not set
CONFIG_BLK_DEV_IDECS=y
CONFIG_BLK_DEV_DELKIN=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEACPI is not set
CONFIG_IDE_TASK_IOCTL=y
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_PLATFORM is not set
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_CMD640_ENHANCED=y
CONFIG_BLK_DEV_IDEPNP=y
CONFIG_BLK_DEV_IDEDMA_SFF=y

#
# PCI IDE chipsets support
#

Page 63 of 245
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_AEC62XX=y
CONFIG_BLK_DEV_ALI15X3=y
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_ATIIXP=y
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_TRIFLEX=y
# CONFIG_BLK_DEV_CS5520 is not set
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_CS5535=y
CONFIG_BLK_DEV_CS5536=y
CONFIG_BLK_DEV_HPT366=y
CONFIG_BLK_DEV_JMICRON=y
CONFIG_BLK_DEV_SC1200=y
CONFIG_BLK_DEV_PIIX=y
CONFIG_BLK_DEV_IT8172=y
CONFIG_BLK_DEV_IT8213=y
CONFIG_BLK_DEV_IT821X=y
CONFIG_BLK_DEV_NS87415=y
CONFIG_BLK_DEV_PDC202XX_OLD=y
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_BLK_DEV_SVWKS=y
CONFIG_BLK_DEV_SIIMAGE=y
CONFIG_BLK_DEV_SIS5513=y
CONFIG_BLK_DEV_SLC90E66=y
CONFIG_BLK_DEV_TRM290=y
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_BLK_DEV_TC86C001=y

#
# Other IDE chipsets support
#

#
# Note: most of these also require special kernel boot parameters
#
CONFIG_BLK_DEV_4DRIVES=y
CONFIG_BLK_DEV_ALI14XX=y
CONFIG_BLK_DEV_DTC2278=y
CONFIG_BLK_DEV_HT6560B=y
CONFIG_BLK_DEV_QD65XX=y
CONFIG_BLK_DEV_UMC8672=y
CONFIG_BLK_DEV_IDEDMA=y

#
# SCSI device support

Page 64 of 245
#
CONFIG_SCSI_MOD=y
CONFIG_RAID_ATTRS=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
# CONFIG_SCSI_MQ_DEFAULT is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
CONFIG_SCSI_ISCSI_ATTRS=y
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=y
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_SAS_HOST_SMP=y
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
CONFIG_ISCSI_TCP=y
CONFIG_ISCSI_BOOT_SYSFS=y
CONFIG_SCSI_CXGB3_ISCSI=y
CONFIG_SCSI_CXGB4_ISCSI=y
CONFIG_SCSI_BNX2_ISCSI=y
CONFIG_SCSI_BNX2X_FCOE=y
CONFIG_BE2ISCSI=y
CONFIG_BLK_DEV_3W_XXXX_RAID=y
CONFIG_SCSI_HPSA=y
CONFIG_SCSI_3W_9XXX=y
CONFIG_SCSI_3W_SAS=y
CONFIG_SCSI_ACARD=y
CONFIG_SCSI_AHA152X=y
CONFIG_SCSI_AHA1542=y
CONFIG_SCSI_AHA1740=y
CONFIG_SCSI_AACRAID=y
CONFIG_SCSI_AIC7XXX=y

Page 65 of 245
CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC79XX=y
CONFIG_AIC79XX_CMDS_PER_DEVICE=4
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC94XX=y
CONFIG_AIC94XX_DEBUG=y
CONFIG_SCSI_MVSAS=y
CONFIG_SCSI_MVSAS_DEBUG=y
# CONFIG_SCSI_MVSAS_TASKLET is not set
CONFIG_SCSI_MVUMI=y
CONFIG_SCSI_DPT_I2O=y
CONFIG_SCSI_ADVANSYS=y
CONFIG_SCSI_ARCMSR=y
CONFIG_SCSI_ESAS2R=y
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=y
CONFIG_MEGARAID_MAILBOX=y
CONFIG_MEGARAID_LEGACY=y
CONFIG_MEGARAID_SAS=y
CONFIG_SCSI_MPT3SAS=y
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
CONFIG_SCSI_MPT3SAS_MAX_SGE=128
CONFIG_SCSI_MPT2SAS=y
CONFIG_SCSI_SMARTPQI=y
# CONFIG_SCSI_UFSHCD is not set
CONFIG_SCSI_HPTIOP=y
CONFIG_SCSI_BUSLOGIC=y
CONFIG_SCSI_FLASHPOINT=y
CONFIG_VMWARE_PVSCSI=y
CONFIG_LIBFC=y
CONFIG_LIBFCOE=y
CONFIG_FCOE=y
CONFIG_FCOE_FNIC=y
# CONFIG_SCSI_SNIC is not set
CONFIG_SCSI_DMX3191D=y
CONFIG_SCSI_EATA=y
# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
CONFIG_SCSI_EATA_MAX_TAGS=16
CONFIG_SCSI_FUTURE_DOMAIN=y
CONFIG_SCSI_GDTH=y
CONFIG_SCSI_ISCI=y
CONFIG_SCSI_GENERIC_NCR5380=y
CONFIG_SCSI_IPS=y
CONFIG_SCSI_INITIO=y

Page 66 of 245
CONFIG_SCSI_INIA100=y
CONFIG_SCSI_NCR53C406A=y
CONFIG_SCSI_STEX=y
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_SCSI_IPR=y
CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
CONFIG_SCSI_QLOGIC_FAS=y
CONFIG_SCSI_QLOGIC_1280=y
CONFIG_SCSI_QLA_FC=y
CONFIG_SCSI_QLA_ISCSI=y
CONFIG_SCSI_LPFC=y
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_SIM710=y
CONFIG_SCSI_SYM53C416=y
CONFIG_SCSI_DC395x=y
CONFIG_SCSI_AM53C974=y
CONFIG_SCSI_NSP32=y
CONFIG_SCSI_WD719X=y
# CONFIG_SCSI_DEBUG is not set
CONFIG_SCSI_PMCRAID=y
CONFIG_SCSI_PM8001=y
CONFIG_SCSI_BFA_FC=y
CONFIG_SCSI_VIRTIO=y
CONFIG_SCSI_CHELSIO_FCOE=y
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not set
CONFIG_SATA_PMP=y

#
# Controllers with non-SFF native interface
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_CEVA=y
# CONFIG_AHCI_QORIQ is not set
CONFIG_SATA_INIC162X=y
CONFIG_SATA_ACARD_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_ATA_SFF=y

Page 67 of 245
# SFF controllers with custom DMA interface
#
CONFIG_PDC_ADMA=y
CONFIG_SATA_QSTOR=y
CONFIG_SATA_SX4=y
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
CONFIG_SATA_MV=y
CONFIG_SATA_NV=y
CONFIG_SATA_PROMISE=y
CONFIG_SATA_SIL=y
CONFIG_SATA_SIS=y
CONFIG_SATA_SVW=y
CONFIG_SATA_ULI=y
CONFIG_SATA_VIA=y
CONFIG_SATA_VITESSE=y

#
# PATA SFF controllers with BMDMA
#
CONFIG_PATA_ALI=y
CONFIG_PATA_AMD=y
CONFIG_PATA_ARTOP=y
CONFIG_PATA_ATIIXP=y
CONFIG_PATA_ATP867X=y
CONFIG_PATA_CMD64X=y
CONFIG_PATA_CS5520=y
CONFIG_PATA_CS5530=y
CONFIG_PATA_CS5535=y
CONFIG_PATA_CS5536=y
CONFIG_PATA_CYPRESS=y
CONFIG_PATA_EFAR=y
CONFIG_PATA_HPT366=y
CONFIG_PATA_HPT37X=y
CONFIG_PATA_HPT3X2N=y
CONFIG_PATA_HPT3X3=y
# CONFIG_PATA_HPT3X3_DMA is not set
# CONFIG_PATA_IT8213 is not set
CONFIG_PATA_IT821X=y
CONFIG_PATA_JMICRON=y
CONFIG_PATA_MARVELL=y
CONFIG_PATA_NETCELL=y
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87415 is not set
CONFIG_PATA_OLDPIIX=y
CONFIG_PATA_OPTIDMA=y
CONFIG_PATA_PDC2027X=y
CONFIG_PATA_PDC_OLD=y

Page 68 of 245
CONFIG_PATA_RADISYS=y
# CONFIG_PATA_RDC is not set
CONFIG_PATA_SC1200=y
CONFIG_PATA_SCH=y
CONFIG_PATA_SERVERWORKS=y
CONFIG_PATA_SIL680=y
CONFIG_PATA_SIS=y
# CONFIG_PATA_TOSHIBA is not set
CONFIG_PATA_TRIFLEX=y
CONFIG_PATA_VIA=y
CONFIG_PATA_WINBOND=y

#
# PIO-only SFF controllers
#
# CONFIG_PATA_CMD640_PCI is not set
CONFIG_PATA_ISAPNP=y
CONFIG_PATA_MPIIX=y
CONFIG_PATA_NS87410=y
CONFIG_PATA_OPTI=y
CONFIG_PATA_PCMCIA=y
CONFIG_PATA_QDI=y
CONFIG_PATA_RZ1000=y
CONFIG_PATA_WINBOND_VLB=y

#
# Generic fallback / legacy drivers
#
# CONFIG_PATA_ACPI is not set
CONFIG_ATA_GENERIC=y
CONFIG_PATA_LEGACY=y
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_AUTODETECT=y
CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y
CONFIG_MD_RAID456=y
CONFIG_MD_MULTIPATH=y
CONFIG_MD_FAULTY=y
# CONFIG_BCACHE is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_MQ_DEFAULT is not set
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=y
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_THIN_PROVISIONING is not set
# CONFIG_DM_CACHE is not set
# CONFIG_DM_ERA is not set
# CONFIG_DM_MIRROR is not set

Page 69 of 245
# CONFIG_DM_RAID is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_UEVENT is not set
# CONFIG_DM_FLAKEY is not set
# CONFIG_DM_VERITY is not set
# CONFIG_DM_SWITCH is not set
# CONFIG_DM_LOG_WRITES is not set
# CONFIG_TARGET_CORE is not set
CONFIG_FUSION=y
CONFIG_FUSION_SPI=y
CONFIG_FUSION_FC=y
CONFIG_FUSION_SAS=y
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_CTL=y
CONFIG_FUSION_LAN=y
# CONFIG_FUSION_LOGGING is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
CONFIG_MACINTOSH_DRIVERS=y
# CONFIG_MAC_EMUMOUSEBTN is not set
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_NET_CORE=y
# CONFIG_BONDING is not set
CONFIG_DUMMY=y
# CONFIG_EQUALIZER is not set
CONFIG_NET_FC=y
# CONFIG_NET_TEAM is not set
# CONFIG_MACVLAN is not set
# CONFIG_VXLAN is not set
# CONFIG_GENEVE is not set
# CONFIG_GTP is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_TUN is not set
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_VETH is not set
CONFIG_VIRTIO_NET=y
# CONFIG_NLMON is not set
CONFIG_SUNGEM_PHY=y
# CONFIG_ARCNET is not set

#
# CAIF transport drivers

Page 70 of 245
#

#
# Distributed Switch Architecture drivers
#
CONFIG_ETHERNET=y
CONFIG_MDIO=y
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL3=y
CONFIG_3C515=y
CONFIG_PCMCIA_3C574=y
CONFIG_PCMCIA_3C589=y
CONFIG_VORTEX=y
CONFIG_TYPHOON=y
CONFIG_NET_VENDOR_ADAPTEC=y
CONFIG_ADAPTEC_STARFIRE=y
CONFIG_NET_VENDOR_AGERE=y
CONFIG_ET131X=y
CONFIG_NET_VENDOR_ALACRITECH=y
# CONFIG_SLICOSS is not set
CONFIG_NET_VENDOR_ALTEON=y
CONFIG_ACENIC=y
# CONFIG_ACENIC_OMIT_TIGON_I is not set
# CONFIG_ALTERA_TSE is not set
CONFIG_NET_VENDOR_AMAZON=y
# CONFIG_ENA_ETHERNET is not set
CONFIG_NET_VENDOR_AMD=y
CONFIG_AMD8111_ETH=y
CONFIG_LANCE=y
CONFIG_PCNET32=y
CONFIG_PCMCIA_NMCLAN=y
CONFIG_NI65=y
CONFIG_AMD_XGBE=y
CONFIG_AMD_XGBE_HAVE_ECC=y
CONFIG_NET_VENDOR_ARC=y
CONFIG_NET_VENDOR_ATHEROS=y
CONFIG_ATL2=y
CONFIG_ATL1=y
CONFIG_ATL1E=y
CONFIG_ATL1C=y
CONFIG_ALX=y
# CONFIG_NET_VENDOR_AURORA is not set
CONFIG_NET_CADENCE=y
# CONFIG_MACB is not set
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=y
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y
# CONFIG_BCMGENET is not set
CONFIG_BNX2=y
CONFIG_CNIC=y

Page 71 of 245
CONFIG_TIGON3=y
CONFIG_BNX2X=y
# CONFIG_SYSTEMPORT is not set
# CONFIG_BNXT is not set
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=y
CONFIG_NET_VENDOR_CAVIUM=y
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T3=y
CONFIG_CHELSIO_T4=y
CONFIG_CHELSIO_T4VF=y
CONFIG_CHELSIO_LIB=y
CONFIG_NET_VENDOR_CIRRUS=y
CONFIG_CS89x0=y
CONFIG_CS89x0_PLATFORM=y
CONFIG_NET_VENDOR_CISCO=y
CONFIG_ENIC=y
# CONFIG_CX_ECAT is not set
CONFIG_DNET=y
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_TULIP=y
CONFIG_DE2104X=y
CONFIG_DE2104X_DSL=0
CONFIG_TULIP=y
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
CONFIG_DE4X5=y
CONFIG_WINBOND_840=y
CONFIG_DM9102=y
CONFIG_ULI526X=y
CONFIG_PCMCIA_XIRCOM=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_DL2K=y
CONFIG_SUNDANCE=y
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_NET_VENDOR_EMULEX=y
CONFIG_BE2NET=y
CONFIG_BE2NET_HWMON=y
CONFIG_NET_VENDOR_EZCHIP=y
# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
CONFIG_NET_VENDOR_EXAR=y
CONFIG_S2IO=y
CONFIG_VXGE=y
# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_PCMCIA_FMVJ18X=y
CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=y
CONFIG_NET_VENDOR_INTEL=y

Page 72 of 245
CONFIG_E100=y
CONFIG_E1000=y
CONFIG_E1000E=y
CONFIG_E1000E_HWTS=y
CONFIG_IGB=y
CONFIG_IGB_HWMON=y
CONFIG_IGBVF=y
CONFIG_IXGB=y
CONFIG_IXGBE=y
CONFIG_IXGBE_HWMON=y
CONFIG_IXGBEVF=y
CONFIG_I40E=y
# CONFIG_I40EVF is not set
# CONFIG_FM10K is not set
CONFIG_NET_VENDOR_I825XX=y
CONFIG_JME=y
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_MVMDIO=y
# CONFIG_MVNETA_BM is not set
CONFIG_SKGE=y
# CONFIG_SKGE_DEBUG is not set
CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=y
# CONFIG_SKY2_DEBUG is not set
CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=y
CONFIG_MLX4_CORE=y
CONFIG_MLX4_DEBUG=y
# CONFIG_MLX5_CORE is not set
# CONFIG_MLXSW_CORE is not set
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8851_MLL=y
CONFIG_KSZ884X_PCI=y
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=y
CONFIG_FEALNX=y
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NATSEMI=y
CONFIG_NS83820=y
CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP_NETVF=y
# CONFIG_NFP_NET_DEBUG is not set
CONFIG_NET_VENDOR_8390=y
CONFIG_PCMCIA_AXNET=y
CONFIG_NE2000=y
CONFIG_NE2K_PCI=y
CONFIG_PCMCIA_PCNET=y
CONFIG_ULTRA=y
CONFIG_WD80x3=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=y
CONFIG_NET_VENDOR_OKI=y

Page 73 of 245
CONFIG_PCH_GBE=y
# CONFIG_ETHOC is not set
# CONFIG_NET_PACKET_ENGINE is not set
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=y
CONFIG_QLCNIC=y
CONFIG_QLCNIC_HWMON=y
CONFIG_QLGE=y
CONFIG_NETXEN_NIC=y
# CONFIG_QED is not set
CONFIG_NET_VENDOR_QUALCOMM=y
# CONFIG_QCOM_EMAC is not set
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_8139CP=y
CONFIG_8139TOO=y
# CONFIG_8139TOO_PIO is not set
CONFIG_8139TOO_TUNE_TWISTER=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=y
CONFIG_NET_VENDOR_RENESAS=y
CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=y
CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SAMSUNG=y
# CONFIG_SXGBE_ETH is not set
CONFIG_NET_VENDOR_SEEQ=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_SC92031=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_SIS900=y
CONFIG_SIS190=y
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_SFC=y
CONFIG_SFC_MCDI_MON=y
CONFIG_SFC_MCDI_LOGGING=y
# CONFIG_SFC_FALCON is not set
CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC9194=y
CONFIG_PCMCIA_SMC91C92=y
CONFIG_EPIC100=y
CONFIG_SMSC911X=y
# CONFIG_SMSC911X_ARCH_HOOKS is not set
CONFIG_SMSC9420=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y
CONFIG_DWMAC_GENERIC=y
# CONFIG_STMMAC_PCI is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=y
CONFIG_SUNGEM=y

Page 74 of 245
CONFIG_CASSINI=y
CONFIG_NIU=y
CONFIG_NET_VENDOR_SYNOPSYS=y
# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=y
CONFIG_NET_VENDOR_TI=y
# CONFIG_TI_CPSW_ALE is not set
CONFIG_TLAN=y
CONFIG_NET_VENDOR_VIA=y
CONFIG_VIA_RHINE=y
CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIA_VELOCITY=y
CONFIG_NET_VENDOR_WIZNET=y
CONFIG_WIZNET_W5100=y
CONFIG_WIZNET_W5300=y
# CONFIG_WIZNET_BUS_DIRECT is not set
# CONFIG_WIZNET_BUS_INDIRECT is not set
CONFIG_WIZNET_BUS_ANY=y
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=y
CONFIG_FDDI=y
# CONFIG_DEFXX is not set
CONFIG_SKFP=y
# CONFIG_HIPPI is not set
CONFIG_NET_SB1000=y
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
# CONFIG_LED_TRIGGER_PHY is not set

#
# MDIO bus device drivers
#
# CONFIG_MDIO_BCM_UNIMAC is not set
CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_BUS_MUX=y
CONFIG_MDIO_BUS_MUX_GPIO=y
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
CONFIG_MDIO_GPIO=y
# CONFIG_MDIO_HISI_FEMAC is not set

#
# MII PHY device drivers
#
CONFIG_AMD_PHY=y
# CONFIG_AQUANTIA_PHY is not set
CONFIG_AT803X_PHY=y
CONFIG_BCM7XXX_PHY=y
CONFIG_BCM87XX_PHY=y
CONFIG_BCM_NET_PHYLIB=y
CONFIG_BROADCOM_PHY=y
CONFIG_CICADA_PHY=y

Page 75 of 245
CONFIG_DAVICOM_PHY=y
# CONFIG_DP83848_PHY is not set
# CONFIG_DP83867_PHY is not set
CONFIG_FIXED_PHY=y
CONFIG_ICPLUS_PHY=y
# CONFIG_INTEL_XWAY_PHY is not set
CONFIG_LSI_ET1011C_PHY=y
CONFIG_LXT_PHY=y
CONFIG_MARVELL_PHY=y
CONFIG_MICREL_PHY=y
# CONFIG_MICROCHIP_PHY is not set
# CONFIG_MICROSEMI_PHY is not set
CONFIG_NATIONAL_PHY=y
CONFIG_QSEMI_PHY=y
CONFIG_REALTEK_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_STE10XP=y
# CONFIG_TERANETICS_PHY is not set
CONFIG_VITESSE_PHY=y
# CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_CATC=y
CONFIG_USB_KAWETH=y
CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
# CONFIG_USB_LAN78XX is not set
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
CONFIG_USB_NET_CDC_NCM=y
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
CONFIG_USB_NET_DM9601=y
CONFIG_USB_NET_SR9700=y
CONFIG_USB_NET_SR9800=y
CONFIG_USB_NET_SMSC75XX=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_USB_NET_GL620A=y
CONFIG_USB_NET_NET1080=y
CONFIG_USB_NET_PLUSB=y
CONFIG_USB_NET_MCS7830=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y

Page 76 of 245
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=y
CONFIG_USB_NET_CX82310_ETH=y
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
# CONFIG_USB_NET_INT51X1 is not set
CONFIG_USB_IPHETH=y
CONFIG_USB_SIERRA_NET=y
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
# CONFIG_WLAN is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_FUJITSU_ES is not set
# CONFIG_ISDN is not set
# CONFIG_NVM is not set

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=y
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_POLLDEV=y
CONFIG_INPUT_SPARSEKMAP=y
# CONFIG_INPUT_MATRIXKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set

Page 77 of 245
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_PS2_OLPC is not set
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_MOUSE_SERIAL=y
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_CYAPA is not set
# CONFIG_MOUSE_ELAN_I2C is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
CONFIG_MOUSE_VSXXXAA=y
# CONFIG_MOUSE_GPIO is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_MOUSE_SYNAPTICS_USB is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_PROPERTIES=y
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set

Page 78 of 245
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_EGALAX is not set
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GOODIX is not set
# CONFIG_TOUCHSCREEN_ILI210X is not set
CONFIG_TOUCHSCREEN_GUNZE=y
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
# CONFIG_TOUCHSCREEN_ELAN is not set
CONFIG_TOUCHSCREEN_ELO=y
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
# CONFIG_TOUCHSCREEN_MAX11801 is not set
# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MMS114 is not set
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
CONFIG_TOUCHSCREEN_MTOUCH=y
# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
CONFIG_TOUCHSCREEN_MK712=y
# CONFIG_TOUCHSCREEN_HTCPEN is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_TOUCHSCREEN_RM_TS is not set
# CONFIG_TOUCHSCREEN_SILEAD is not set
# CONFIG_TOUCHSCREEN_SIS_I2C is not set
# CONFIG_TOUCHSCREEN_ST1232 is not set
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZFORCE is not set
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
# CONFIG_INPUT_BMA150 is not set

Page 79 of 245
# CONFIG_INPUT_E3X0_BUTTON is not set
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_MPU3050 is not set
# CONFIG_INPUT_APANEL is not set
# CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_BEEPER is not set
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
# CONFIG_INPUT_GPIO_DECODER is not set
CONFIG_INPUT_WISTRON_BTNS=y
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_KXTJ9 is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
CONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IMS_PCU is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
# CONFIG_RMI4_CORE is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=y
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_SERIO_APBPS2 is not set
# CONFIG_SERIO_OLPC_APSP is not set
# CONFIG_USERIO is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_TTY=y

Page 80 of 245
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
CONFIG_DEVMEM=y
CONFIG_DEVKMEM=y

#
# Serial drivers
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
CONFIG_SERIAL_8250_PNP=y
# CONFIG_SERIAL_8250_FINTEK is not set
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_CS=y
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
# CONFIG_SERIAL_8250_SHARE_IRQ is not set
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_RSA is not set
# CONFIG_SERIAL_8250_FSL is not set
CONFIG_SERIAL_8250_DW=y
# CONFIG_SERIAL_8250_RT288X is not set
CONFIG_SERIAL_8250_LPSS=y
CONFIG_SERIAL_8250_MID=y
# CONFIG_SERIAL_8250_MOXA is not set
# CONFIG_SERIAL_OF_PLATFORM is not set

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set

Page 81 of 245
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_PCH_UART is not set
# CONFIG_SERIAL_XILINX_PS_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
CONFIG_HVC_DRIVER=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_INTEL=y
CONFIG_HW_RANDOM_AMD=y
CONFIG_HW_RANDOM_GEODE=y
CONFIG_HW_RANDOM_VIA=y
# CONFIG_HW_RANDOM_VIRTIO is not set
CONFIG_HW_RANDOM_TPM=y
CONFIG_NVRAM=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set

#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
# CONFIG_SCR24X is not set
# CONFIG_IPWIRELESS is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=y
CONFIG_TCG_TPM=y
# CONFIG_TCG_TIS is not set
# CONFIG_TCG_TIS_I2C_ATMEL is not set
# CONFIG_TCG_TIS_I2C_INFINEON is not set
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
# CONFIG_TCG_NSC is not set
CONFIG_TCG_ATMEL=y
# CONFIG_TCG_INFINEON is not set
# CONFIG_TCG_CRB is not set
# CONFIG_TCG_VTPM_PROXY is not set
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y

Page 82 of 245
# CONFIG_XILLYBUS is not set

#
# I2C support
#
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
# CONFIG_I2C_CHARDEV is not set
# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_ISMT is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set

#
# ACPI drivers
#
# CONFIG_I2C_SCMI is not set

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_CBUS_GPIO is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_PXA is not set

Page 83 of 245
# CONFIG_I2C_PXA_PCI is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_DIOLAN_U2C is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_PCA_ISA is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_SLAVE is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set

#
# PPS support
#
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_GPIO is not set

#
# PPS generators support
#

#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#

Page 84 of 245
CONFIG_PTP_1588_CLOCK_PCH=y
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
CONFIG_GPIO_ACPI=y
# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set

#
# Memory mapped GPIO drivers
#
# CONFIG_GPIO_74XX_MMIO is not set
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_AMDPT is not set
# CONFIG_GPIO_DWAPB is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_ICH is not set
# CONFIG_GPIO_LYNXPOINT is not set
# CONFIG_GPIO_MOCKUP is not set
# CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_VX855 is not set
# CONFIG_GPIO_XILINX is not set

#
# Port-mapped I/O GPIO drivers
#
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDIO_16 is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_F7188X is not set
# CONFIG_GPIO_GPIO_MM is not set
# CONFIG_GPIO_IT87 is not set
# CONFIG_GPIO_SCH is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_WS16C48 is not set

#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADP5588 is not set
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set

#
# MFD GPIO expanders
#

Page 85 of 245
# PCI GPIO expanders
#
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_ML_IOH is not set
# CONFIG_GPIO_PCH is not set
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SODAVILLE is not set

#
# SPI or I2C GPIO expanders
#
# CONFIG_GPIO_MCP23S08 is not set

#
# USB GPIO expanders
#
# CONFIG_W1 is not set
# CONFIG_POWER_AVS is not set
# CONFIG_POWER_RESET is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_OLPC is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ25890 is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_CHARGER_RT9455 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set

Page 86 of 245
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7410 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
CONFIG_SENSORS_DELL_SMM=y
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_GPIO_FAN is not set
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_I5500 is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX6639 is not set

Page 87 of 245
# CONFIG_SENSORS_MAX6642 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LM95234 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_LM95245 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_NTC_THERMISTOR is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_NCT7904 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_SHT15 is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHT3x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SCH56XX_COMMON is not set
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS1015 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_TC74 is not set

Page 88 of 245
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP103 is not set
# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set

#
# ACPI drivers
#
# CONFIG_SENSORS_ACPI_POWER is not set
# CONFIG_SENSORS_ATK0110 is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_THERMAL_OF=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_USER_SPACE=y
# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
# CONFIG_CPU_THERMAL is not set
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_QORIQ_THERMAL is not set
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_X86_PKG_TEMP_THERMAL=y
# CONFIG_INTEL_SOC_DTS_THERMAL is not set

#
# ACPI INT340X thermal drivers
#
# CONFIG_INT340X_THERMAL is not set
# CONFIG_INTEL_PCH_THERMAL is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

Page 89 of 245
#
# Sonics Silicon Backplane
#
CONFIG_SSB=y
CONFIG_SSB_SPROM=y
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
# CONFIG_SSB_B43_PCI_BRIDGE is not set
CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
# CONFIG_SSB_PCMCIAHOST is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
# CONFIG_SSB_DRIVER_GPIO is not set
CONFIG_BCMA_POSSIBLE=y

#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_ACT8945A is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_AS3722 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9062 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_I2CPLD is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_MFD_INTEL_LPSS_ACPI is not set

Page 90 of 245
# CONFIG_MFD_INTEL_LPSS_PCI is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77620 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77843 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RTSX_USB is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_SMSC is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_STMPE is not set
CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TPS65218 is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS80031 is not set
# CONFIG_TWL4030_CORE is not set

Page 91 of 245
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_VGA_SWITCHEROO is not set
# CONFIG_DRM is not set

#
# ACP (Audio CoProcessor) Configuration
#

#
# Frame buffer Devices
#
# CONFIG_FB is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_PLATFORM is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y
# CONFIG_BACKLIGHT_APPLE is not set
# CONFIG_BACKLIGHT_PM8941_WLED is not set
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_GPIO is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_VGASTATE is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y

Page 92 of 245
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
# CONFIG_SOUND is not set

#
# HID support
#
CONFIG_HID=y
# CONFIG_HID_BATTERY_STRENGTH is not set
# CONFIG_HIDRAW is not set
# CONFIG_UHID is not set
CONFIG_HID_GENERIC=y

#
# Special HID drivers
#
CONFIG_HID_A4TECH=y
# CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=y
# CONFIG_HID_APPLEIR is not set
# CONFIG_HID_AUREAL is not set
CONFIG_HID_BELKIN=y
# CONFIG_HID_BETOP_FF is not set
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
# CONFIG_HID_CORSAIR is not set
# CONFIG_HID_CMEDIA is not set
CONFIG_HID_CYPRESS=y
CONFIG_HID_DRAGONRISE=y
# CONFIG_DRAGONRISE_FF is not set
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_ELO is not set
CONFIG_HID_EZKEY=y
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_GT683R is not set
# CONFIG_HID_KEYTOUCH is not set
CONFIG_HID_KYE=y
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
CONFIG_HID_GYRATION=y
# CONFIG_HID_ICADE is not set
CONFIG_HID_TWINHAN=y
CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LED is not set

Page 93 of 245
# CONFIG_HID_LENOVO is not set
CONFIG_HID_LOGITECH=y
# CONFIG_HID_LOGITECH_HIDPP is not set
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
# CONFIG_LOGIG940_FF is not set
# CONFIG_LOGIWHEELS_FF is not set
# CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MAYFLASH is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
# CONFIG_HID_MULTITOUCH is not set
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=y
CONFIG_HID_PANTHERLORD=y
# CONFIG_PANTHERLORD_FF is not set
# CONFIG_HID_PENMOUNT is not set
CONFIG_HID_PETALYNX=y
# CONFIG_HID_PICOLCD is not set
CONFIG_HID_PLANTRONICS=y
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
CONFIG_HID_SAMSUNG=y
CONFIG_HID_SONY=y
# CONFIG_SONY_FF is not set
# CONFIG_HID_SPEEDLINK is not set
# CONFIG_HID_STEELSERIES is not set
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_RMI is not set
CONFIG_HID_GREENASIA=y
# CONFIG_GREENASIA_FF is not set
CONFIG_HID_SMARTJOYPLUS=y
# CONFIG_SMARTJOYPLUS_FF is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
CONFIG_HID_THRUSTMASTER=y
# CONFIG_THRUSTMASTER_FF is not set
# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HID_WACOM is not set
# CONFIG_HID_WIIMOTE is not set
# CONFIG_HID_XINMO is not set
CONFIG_HID_ZEROPLUS=y
# CONFIG_ZEROPLUS_FF is not set
# CONFIG_HID_ZYDACRON is not set
# CONFIG_HID_SENSOR_HUB is not set
# CONFIG_HID_ALPS is not set

#
# USB HID support
#

Page 94 of 245
CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
CONFIG_USB_HIDDEV=y

#
# I2C HID support
#
# CONFIG_I2C_HID is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
CONFIG_USB_MON=y
# CONFIG_USB_WUSB_CBAF is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_C67X00_HCD=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
CONFIG_USB_EHCI_PCI=y
# CONFIG_USB_EHCI_HCD_PLATFORM is not set
CONFIG_USB_OXU210HP_HCD=y
CONFIG_USB_ISP116X_HCD=y
# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_SL811_HCD=y
# CONFIG_USB_SL811_HCD_ISO is not set
CONFIG_USB_SL811_CS=y
CONFIG_USB_R8A66597_HCD=y
# CONFIG_USB_HCD_SSB is not set

Page 95 of 245
# CONFIG_USB_HCD_TEST_MODE is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#

#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_REALTEK is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
# CONFIG_USB_UAS is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
CONFIG_USB_MICROTEK=y
# CONFIG_USBIP_CORE is not set
# CONFIG_USB_MUSB_HDRC is not set
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_HOST=y

#
# Platform Glue Driver Support
#
CONFIG_USB_DWC3_PCI=y
# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_ISP1760 is not set

Page 96 of 245
#
# USB port drivers
#
CONFIG_USB_SERIAL=y
# CONFIG_USB_SERIAL_CONSOLE is not set
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_SIMPLE is not set
# CONFIG_USB_SERIAL_AIRCABLE is not set
CONFIG_USB_SERIAL_ARK3116=y
CONFIG_USB_SERIAL_BELKIN=y
# CONFIG_USB_SERIAL_CH341 is not set
CONFIG_USB_SERIAL_WHITEHEAT=y
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=y
# CONFIG_USB_SERIAL_CP210X is not set
CONFIG_USB_SERIAL_CYPRESS_M8=y
CONFIG_USB_SERIAL_EMPEG=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_VISOR=y
CONFIG_USB_SERIAL_IPAQ=y
CONFIG_USB_SERIAL_IR=y
CONFIG_USB_SERIAL_EDGEPORT=y
CONFIG_USB_SERIAL_EDGEPORT_TI=y
# CONFIG_USB_SERIAL_F81232 is not set
# CONFIG_USB_SERIAL_F8153X is not set
CONFIG_USB_SERIAL_GARMIN=y
CONFIG_USB_SERIAL_IPW=y
# CONFIG_USB_SERIAL_IUU is not set
CONFIG_USB_SERIAL_KEYSPAN_PDA=y
CONFIG_USB_SERIAL_KEYSPAN=y
CONFIG_USB_SERIAL_KLSI=y
CONFIG_USB_SERIAL_KOBIL_SCT=y
CONFIG_USB_SERIAL_MCT_U232=y
# CONFIG_USB_SERIAL_METRO is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MXUPORT is not set
CONFIG_USB_SERIAL_NAVMAN=y
CONFIG_USB_SERIAL_PL2303=y
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QCAUX is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set
# CONFIG_USB_SERIAL_SPCP8X5 is not set
CONFIG_USB_SERIAL_SAFE=y
CONFIG_USB_SERIAL_SAFE_PADDED=y
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_SYMBOL is not set
CONFIG_USB_SERIAL_TI=y
CONFIG_USB_SERIAL_CYBERJACK=y
CONFIG_USB_SERIAL_XIRCOM=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_SERIAL_OMNINET=y

Page 97 of 245
# CONFIG_USB_SERIAL_OPTICON is not set
# CONFIG_USB_SERIAL_XSENS_MT is not set
# CONFIG_USB_SERIAL_WISHBONE is not set
# CONFIG_USB_SERIAL_SSU100 is not set
# CONFIG_USB_SERIAL_QT2 is not set
# CONFIG_USB_SERIAL_DEBUG is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_EHSET_TEST_FIXTURE is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
CONFIG_USB_EZUSB_FX2=y
# CONFIG_USB_HSIC_USB3503 is not set
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set
# CONFIG_UCSI is not set

#
# USB Physical Layer drivers
#
# CONFIG_USB_PHY is not set
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ISP1301 is not set
# CONFIG_USB_GADGET is not set
# CONFIG_USB_LED_TRIG is not set
# CONFIG_USB_ULPI_BUS is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y

Page 98 of 245
# CONFIG_LEDS_CLASS_FLASH is not set

#
# LED drivers
#
# CONFIG_LEDS_BCM6328 is not set
# CONFIG_LEDS_BCM6358 is not set
# CONFIG_LEDS_LM3530 is not set
# CONFIG_LEDS_LM3642 is not set
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_LP3952 is not set
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
# CONFIG_LEDS_LP8501 is not set
# CONFIG_LEDS_LP8860 is not set
# CONFIG_LEDS_CLEVO_MAIL is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_INTEL_SS4200 is not set
# CONFIG_LEDS_LT3593 is not set
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_TLC591XX is not set
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_OT200 is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set

#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
# CONFIG_LEDS_BLINKM is not set
# CONFIG_LEDS_SYSCON is not set
# CONFIG_LEDS_USER is not set
# CONFIG_LEDS_NIC78BX is not set

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
# CONFIG_LEDS_TRIGGER_DISK is not set
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_CPU is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set

Page 99 of 245
#
# iptables trigger is under Netfilter config (LED target)
#
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
# CONFIG_LEDS_TRIGGER_PANIC is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_DEBUG=y
CONFIG_EDAC_DECODE_MCE=y
# CONFIG_EDAC_MM_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_MC146818_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set

#
# DMABUF options
#
# CONFIG_SYNC_FILE is not set
# CONFIG_AUXDISPLAY is not set
CONFIG_UIO=y
# CONFIG_UIO_CIF is not set
# CONFIG_UIO_PDRV_GENIRQ is not set
# CONFIG_UIO_DMEM_GENIRQ is not set
# CONFIG_UIO_AEC is not set
# CONFIG_UIO_SERCOS3 is not set
# CONFIG_UIO_PCI_GENERIC is not set
# CONFIG_UIO_NETX is not set
# CONFIG_UIO_PRUSS is not set
# CONFIG_UIO_MF624 is not set
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO=y

#
# Virtio drivers
#
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
# CONFIG_VIRTIO_BALLOON is not set
# CONFIG_VIRTIO_INPUT is not set
CONFIG_VIRTIO_MMIO=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set

#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set

Page 100 of 245


CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACERHDF is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_DELL_SMBIOS is not set
# CONFIG_DELL_SMO8800 is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WIRELESS is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_INTEL_MENLOW is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_ACPI_WMI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_VBTN is not set
# CONFIG_INTEL_IPS is not set
# CONFIG_INTEL_PMC_CORE is not set
# CONFIG_IBM_RTL is not set
# CONFIG_XO15_EBOOK is not set
# CONFIG_SAMSUNG_LAPTOP is not set
CONFIG_SAMSUNG_Q10=y
# CONFIG_APPLE_GMUX is not set
# CONFIG_INTEL_RST is not set
# CONFIG_INTEL_SMARTCONNECT is not set
# CONFIG_PVPANIC is not set
# CONFIG_INTEL_PMC_IPC is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
CONFIG_INTEL_PUNIT_IPC=y
# CONFIG_MLX_CPLD_PLATFORM is not set
CONFIG_CHROME_PLATFORMS=y
# CONFIG_CHROMEOS_LAPTOP is not set
# CONFIG_CHROMEOS_PSTORE is not set
# CONFIG_CROS_KBD_LED_BACKLIGHT is not set

#
# Hardware Spinlock drivers
#

#
# Clock Source drivers
#
CONFIG_CLKSRC_I8253=y
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# CONFIG_ATMEL_PIT is not set

Page 101 of 245


# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
# CONFIG_EM_TIMER_STI is not set
# CONFIG_MAILBOX is not set
CONFIG_IOMMU_SUPPORT=y

#
# Generic IOMMU Pagetable Support
#
# CONFIG_INTEL_IOMMU is not set

#
# Remoteproc drivers
#
# CONFIG_REMOTEPROC is not set

#
# Rpmsg drivers
#

#
# SOC (System On Chip) specific Drivers
#

#
# Broadcom SoC drivers
#
# CONFIG_SUNXI_SRAM is not set
# CONFIG_SOC_TI is not set
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_NTB is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set
CONFIG_IRQCHIP=y
CONFIG_ARM_GIC_MAX_NR=1
# CONFIG_IPACK_BUS is not set
CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_ATH79 is not set
# CONFIG_RESET_BERLIN is not set
# CONFIG_RESET_LPC18XX is not set
# CONFIG_RESET_MESON is not set
# CONFIG_RESET_PISTACHIO is not set
# CONFIG_RESET_SOCFPGA is not set
# CONFIG_RESET_STM32 is not set
# CONFIG_RESET_SUNXI is not set
# CONFIG_TI_SYSCON_RESET is not set
# CONFIG_RESET_ZYNQ is not set
# CONFIG_RESET_TEGRA_BPMP is not set

Page 102 of 245


# CONFIG_FMC is not set

#
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set

#
# Performance monitor support
#
CONFIG_RAS=y
# CONFIG_MCE_AMD_INJ is not set
# CONFIG_THUNDERBOLT is not set

#
# Android
#
# CONFIG_ANDROID is not set
# CONFIG_NVMEM is not set
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set

#
# FPGA Configuration Support
#
# CONFIG_FPGA is not set

#
# Firmware Drivers
#
CONFIG_EDD=y
# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_DELL_RBU=y
CONFIG_DCDBAS=y
CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_FW_CFG_SYSFS is not set
# CONFIG_GOOGLE_FIRMWARE is not set

#
# EFI (Extensible Firmware Interface) Support
#
CONFIG_EFI_VARS=y
CONFIG_EFI_ESRT=y

Page 103 of 245


# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFI_BOOTLOADER_CONTROL=y
CONFIG_EFI_CAPSULE_LOADER=y
# CONFIG_EFI_TEST is not set
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_EFI_DEV_PATH_PARSER is not set

#
# Tegra firmware driver
#

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_FS_IOMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_ENCRYPTION is not set
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
CONFIG_XFS_DEBUG=y
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_F2FS_FS is not set
# CONFIG_FS_DAX is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not set
CONFIG_FILE_LOCKING=y

Page 104 of 245


CONFIG_MANDATORY_FILE_LOCKING=y
# CONFIG_FS_ENCRYPTION is not set
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
CONFIG_QUOTACTL=y
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=y
# CONFIG_CUSE is not set
# CONFIG_OVERLAY_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
# CONFIG_PROC_CHILDREN is not set
CONFIG_KERNFS=y
CONFIG_SYSFS=y
# CONFIG_TMPFS is not set

Page 105 of 245


# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=y
CONFIG_EFIVAR_FS=y
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ORANGEFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
CONFIG_ROMFS_FS=y
CONFIG_ROMFS_BACKED_BY_BLOCK=y
CONFIG_ROMFS_ON_BLOCK=y
# CONFIG_PSTORE is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFSD is not set
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
CONFIG_CIFS=y
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_UPCALL is not set
# CONFIG_CIFS_XATTR is not set

Page 106 of 245


CONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_DFS_UPCALL is not set
# CONFIG_CIFS_SMB2 is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set

Page 107 of 245


# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
# CONFIG_NLS_UTF8 is not set
# CONFIG_DLM is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y

#
# printk and dmesg options
#
# CONFIG_PRINTK_TIME is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DYNAMIC_DEBUG is not set

#
# Compile-time checks and compiler options
#
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_GDB_SCRIPTS is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
CONFIG_DEBUG_KERNEL=y

#
# Memory Debugging
#
# CONFIG_PAGE_EXTENSION is not set

Page 108 of 245


# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_DEBUG_HIGHMEM=y
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
CONFIG_DEBUG_SHIRQ=y

#
# Debug Lockups and Hangs
#
CONFIG_LOCKUP_DETECTOR=y
CONFIG_HARDLOCKUP_DETECTOR=y
# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_WQ_WATCHDOG is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
# CONFIG_SCHED_STACK_END_CHECK is not set
# CONFIG_DEBUG_TIMEKEEPING is not set
# CONFIG_TIMER_STATS is not set

#
# Lock Debugging (spinlocks, mutexes, etc...)
#
# CONFIG_DEBUG_RT_MUTEXES is not set
CONFIG_DEBUG_SPINLOCK=y
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set

Page 109 of 245


# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_STACKTRACE is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_LIST=y
# CONFIG_DEBUG_PI_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set

#
# RCU Debugging
#
# CONFIG_PROVE_RCU is not set
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_TRACE is not set
# CONFIG_RCU_EQS_DEBUG is not set
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_HWLAT_TRACER is not set
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
# CONFIG_FTRACE_SYSCALLS is not set
# CONFIG_TRACER_SNAPSHOT is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_UPROBE_EVENT is not set

Page 110 of 245


# CONFIG_PROBE_EVENTS is not set
# CONFIG_MMIOTRACE is not set
# CONFIG_HIST_TRIGGERS is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
CONFIG_TRACING_EVENTS_GPIO=y

#
# Runtime Testing
#
# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_ASYNC_RAID6_TEST is not set
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_UUID is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_HASH is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_MEMTEST is not set
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set
# CONFIG_UBSAN is not set
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
CONFIG_EARLY_PRINTK_EFI=y
# CONFIG_X86_PTDUMP_CORE is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_EFI_PGT_DUMP is not set
# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_WX is not set

Page 111 of 245


# CONFIG_DEBUG_SET_MODULE_RONX is not set
# CONFIG_DEBUG_NX_TEST is not set
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
CONFIG_X86_DEBUG_FPU=y
# CONFIG_PUNIT_ATOM_DEBUG is not set

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_TRUSTED_KEYS is not set
# CONFIG_ENCRYPTED_KEYS is not set
# CONFIG_KEY_DH_OPERATIONS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_PATH is not set
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
# CONFIG_HARDENED_USERCOPY is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_LOADPIN is not set
# CONFIG_SECURITY_YAMA is not set
CONFIG_INTEGRITY=y
# CONFIG_INTEGRITY_SIGNATURE is not set
# CONFIG_IMA is not set
# CONFIG_EVM is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_XOR_BLOCKS=y

Page 112 of 245


CONFIG_ASYNC_CORE=y
CONFIG_ASYNC_MEMCPY=y
CONFIG_ASYNC_XOR=y
CONFIG_ASYNC_PQ=y
CONFIG_ASYNC_RAID6_RECOV=y
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_KPP2=y
CONFIG_CRYPTO_ACOMP2=y
# CONFIG_CRYPTO_RSA is not set
# CONFIG_CRYPTO_DH is not set
# CONFIG_CRYPTO_ECDH is not set
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_NULL2=y
# CONFIG_CRYPTO_PCRYPT is not set
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_MCRYPTD is not set
CONFIG_CRYPTO_AUTHENC=y
# CONFIG_CRYPTO_TEST is not set

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
# CONFIG_CRYPTO_SEQIV is not set
CONFIG_CRYPTO_ECHAINIV=y

#
# Block modes

Page 113 of 245


#
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=y
# CONFIG_CRYPTO_LRW is not set
CONFIG_CRYPTO_PCBC=y
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_KEYWRAP is not set

#
# Hash modes
#
CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
CONFIG_CRYPTO_CRCT10DIF=y
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_POLY1305 is not set
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=y
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
# CONFIG_CRYPTO_SHA3 is not set
CONFIG_CRYPTO_TGR192=y
CONFIG_CRYPTO_WP512=y

#
# Ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_586=y
# CONFIG_CRYPTO_AES_NI_INTEL is not set
CONFIG_CRYPTO_ANUBIS=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_BLOWFISH_COMMON=y

Page 114 of 245


# CONFIG_CRYPTO_CAMELLIA is not set
CONFIG_CRYPTO_CAST_COMMON=y
CONFIG_CRYPTO_CAST5=y
CONFIG_CRYPTO_CAST6=y
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
CONFIG_CRYPTO_KHAZAD=y
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
# CONFIG_CRYPTO_CHACHA20 is not set
# CONFIG_CRYPTO_SEED is not set
CONFIG_CRYPTO_SERPENT=y
# CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
CONFIG_CRYPTO_TEA=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_TWOFISH_COMMON=y
# CONFIG_CRYPTO_TWOFISH_586 is not set

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_842 is not set
# CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set

#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_DRBG_MENU=y
CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_JITTERENTROPY=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=y
CONFIG_CRYPTO_DEV_PADLOCK_AES=y
CONFIG_CRYPTO_DEV_PADLOCK_SHA=y
CONFIG_CRYPTO_DEV_GEODE=y
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set
# CONFIG_CRYPTO_DEV_CCP is not set
# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
# CONFIG_CRYPTO_DEV_QAT_C62X is not set
# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set

Page 115 of 245


# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
# CONFIG_CRYPTO_DEV_CHELSIO is not set
CONFIG_CRYPTO_DEV_VIRTIO=y
# CONFIG_ASYMMETRIC_KEY_TYPE is not set

#
# Certificates for signature checking
#
CONFIG_HAVE_KVM=y
# CONFIG_VIRTUALIZATION is not set
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_RAID6_PQ=y
CONFIG_BITREVERSE=y
# CONFIG_HAVE_ARCH_BITREVERSE is not set
CONFIG_RATIONAL=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
# CONFIG_CRC8 is not set
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y

Page 116 of 245


CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set
CONFIG_IRQ_POLL=y
CONFIG_OID_REGISTRY=y
CONFIG_UCS2_STRING=y
CONFIG_FONT_SUPPORT=y
CONFIG_FONT_8x16=y
CONFIG_FONT_AUTOSELECT=y
# CONFIG_SG_SPLIT is not set
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_MMIO_FLUSH=y
CONFIG_SBITMAP=y

Page 117 of 245


Startup Information File
To run the program after selecting the kernel is to enter ./g4l
(Note: that is G 4 L)

Options:
g4l - Brings up the g4l script with no defaults.

The program accepts the following values, that must be entered in order
g4l parm1 parm2 parm3 parm4 parm5
parm1 - IP address of the ftp server
parm2 - Image file name with extension to determine compression
parm3 - User id and password (two format options)
userid:password or '-u userid -p password' (quotes required)
parm4 - dhcp (use dhcp to get ip address automatically) or fixed ip
parm5 - default directory to store image files is img, but can be changed.
parm6 - eth0 (default or other device)
parm7 - reboot (if blank no reboot, if non-blank reboot)\n\
can now also be poweroff. System will poweroff instead of reboot.

g4l 192.168.0.1 test.lzo userx:passwordx dhcp img

Another option is to use fg4l or efg4l serverip


These are frontend scripts that download a menu script from the default
directory of the server. This script can feed default options for a to the
g4l script to help users. efg4l uses an encrypted version of the script.

Page 118 of 245


Preimage Information File
To prepare an disk or partition to be imaged, it is best to clear all
unused space on the partitions. G4L uses dd to copy the information
from the partitions, and copies all sectors from the drive regardless
of if it contains current data or old data.

Note - New blank6 uses number for temp files to handle larger drives

To Clear this a number of programs have been included.


For use on a FAT or NTFS process you can use blank6.
blank6 creates 2GB Null files on the default drive until the drive is full.
blank 6 also accepts a drive letter prompt to process.
blank6 c or blank6 d

On linux or unix systems the following can be used.


cleandrive is a very simple script to create a Null file to use all free
space, and then delete it.
cleandrive5, or 6, or 7, or 8 are modified versions that provide a graph
display of the process and time information using xdialog and dialog.
The scripts might need to be modified if the output of df is in a different
format. Also, lblank7 is linux version of blank program.

Note: The Above file contents is designed to fit on the screen and be displayed as part of the
boot-up process, so has many limitations for size.

To add to the above. Many of the G4L image options use the dd command (linux program to
copy files and/or devices.) When copying disks or partitions this is a bit level copy that copies
all sectors regardless of there containing current data or random or old data. Changing the
contents of unused sectors to all NULLS. This makes the compression of the sectors much
higher.

Example: On an 80GB Disk did a clean install of a Linux OS and did a disk image backup.
The image created was approximately 12GB. I then ran the clean process to clear all unused
space on the disk partitions, and then reran the disk image process. This time the image was
only 2.5GB. Thus showing how the image size can be greatly reduced.

The above example my not apply to all situations, it is dependent on the amount of unused
space, the CPU load used for the compression, and the disk speed. So, it may also make the
image process faster, but should always result in a smaller size, but speed may also or may
not increase.

Clearing unused space is not necessary from file system imaging used by NTFSCLONE or
Fsarchiver. Since they only backup files versus reading raw sectors.

The options mentioned in the above file are run from the existing OS.

The Utility Menu now has an option that can be used to clear sectors from the G4L boot. This
only works with file systems that can be mounted by the linux.

Page 119 of 245


Front Example Front End File
Example of a front end script that can be used to improve the usability of G4L.
This type of scripts are placed on the ftp server, and downloaded via various scripts.

#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
## Set tab = 2 spaces for formatting
: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

# window title
backtitle="g4l frontend menu"

# two options for menu format


# in the first one, the option letter followed by colon and space
# then serverip image.ext
# using the user:password format you can also include it and the dhcp option
# serverip image.ext user:password dhcp

# in the second option, the only requirement would be the first letters linked
# to the options, since all the parameters are set in the case statement

#eject /dev/hda >/dev/null


eject /dev/hdb >/dev/null ## Option to eject CD
eject /dev/hdc >/dev/null
eject /dev/hdd >/dev/null

dlzo=`date +'%F'`.lzo ## Added to setup to create new images


dgz=`date +'%F'`.gz ## that use the current date as part of name

$DIALOG --sleep 10 --infobox "Please remove CD\nNo longer needed\n10 second message" 0 0

$DIALOG --backtitle "$backtitle" \


--title "G4L frontend menu" \
--menu "Choose your desired mode:" 0 0 0 \
"A: 192.168.0.1 image1.lzo" "The Big Image" \
"B: 192.168.0.1 image2.gz " "The Small Image" \
"C: 192.168.0.1 image3.gz " "The Medium Image" \
"D: 192.168.0.1 image4.lzo" "The Multi Image" \
"E: 192.168.0.1 image$dlzo" "New Image image$dlzo" \
"F: 192.168.0.1 image$dgz" "New Image image$dgz" \
2> /tmp/frontout
retvalmain=$?

# first option command options

Page 120 of 245


# ./g4l `cat /tmp/frontout | cut -b 3-80` '-u user -p password' dhcp
#or
# ./g4l `cat /tmp/frontout | cut -b 3-80` user:password dhcp

# second option can feed any combination of options


# serverip
# serverip image.ext
# serverip image.ext user:password
# serverip image.ext user:password dhcp
# serverip image.ext user:password dhcp img

option=`cat /tmp/frontout | cut -b 1-1`


case $option in
"A")
echo "A"
# ./g4l 192.168.0.1 image1.lzo user:password dhcp img
;;
"B")
echo "B"
# ./g4l 192.168.0.1 image1.lzo user:password dhcp img
;;
"C")
echo "C"
# ./g4l 192.168.0.1 image1.lzo user:password dhcp img
;;
"D")
echo "D"
# ./g4l 192.168.0.1 image1.lzo user:password dhcp img
;;
"E")
echo "E"
# ./g4l 192.168.0.1 image1$dlzo user:password dhcp img
;;
"F")
echo "F"
# ./g4l 192.168.0.1 image1$dgz user:password dhcp img
;;
esac
echo "DONE"

Page 121 of 245


Programs to help clear unused space from partition to be imaged.

Cleandrive is a very basic Linux/Unix Script that works.

dd if=/dev/zero of=/0bits bs=20M


rm /0bits

Cleandrive8 - more complex script


Uses dialog/Xdialog for a graphical display along with older versions of the script.
#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
pcnt=0
JETCAT=`which jetcat-mod `
if [ $? = "0" ] ; then echo $JETCAT
else JETCAT="/jetcat-mod"
fi

progress()
{
(
while [ "$pcnt" != "$value" ]
do

printf "%s\n" "XXX"


## Modified Jetcat-mod to display two decimal positions
## have to cut off the decimals for the gauge to work.
if [ "$value" = "100" ]; then
pcnt=`tail -n1 /tmp/progress.out`
pcnt2=`tail -n1 /tmp/progress.out | cut -d. -f 1 `
if [ "$DIALOG" = "dialog" ]; then
printf "%s\n" $pcnt2
fi
fi
if [ "$value" != "100" ]; then
if [ " " = "$testx" ]; then
pcnt=`df . | grep % | grep / | awk '{print $4}'`
else
pcnt=`df . | grep % | grep / | awk '{print $5}'`
fi
if [ "$DIALOG" = "dialog" ]; then
echo $pcnt | cut -d% -f 1
fi
# printf "%s\n" $pcnt
fi
printf "%s\n" "\n"
## msg variable set before calling the progress function to
## make minor variation between different screens.

Page 122 of 245


printf "%s\n" "$msg"; printf "%s\n" "\n"
printf "%s\n" "\n"
printf "%s\n" "The progress bar shows the percentage of the amount written";
if [ "$DIALOG" = "Xdialog" ]; then
printf "%s\n" "\n"
fi
printf "%s\n" "to the size of the destination."; printf "%s\n" "\n";
printf "%s\n" "Please stand by, this will take some time!"; printf "%s\n" "\n"; printf "%s\n" "\n"
## Percentage displays with 2 decimal places, plus start time and current time.
## This lets one check time status of process in addition to percentage
printf "%s\n" "Progress"; printf "%s\n" "\n"
printf "%s\n" "$pcnt"; printf "%s\n" "\n"
printf "%s\n" "XXX";
printf "%s\n" "$pcnt"
sleep 5
done
)|
$DIALOG --backtitle "$backtitle" --title "Working..." --clear --gauge "One moment..." 30 100
rm /tmp/progress.out
touch /tmp/progress.out
## Added a pause to let the user see final results before it returns.
}

xdyes=`which Xdialog`
dyes=`which dialog`
if [ -n "$DISPLAY" ] ; then
DIALOG="Xdialog"
else
DIALOG="dialog"
fi
if [ -z "$xdyes" ]; then
if [ "$DIALOG" = "Xdialog" ] ; then
DIALOG="dialog"
fi
fi
if [ -z "$dyes" ]; then
if [ "$DIALOG" = "dialog" ] ; then
DIALOG=""
fi
fi
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

backtitle="Program to clear free space"


msg="Clearing Free Space on "`pwd`
value="100"
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`
original=`df . | grep % | grep / | awk '{print $4}'`
testx=`df . | grep % | grep / | cut -b1-1`
if [ " " = "$testx" ]; then
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`

Page 123 of 245


original=`df . | grep % | grep / | awk '{print $4}'`
else
freesize=`df . | grep % | grep / | awk '{print $2 - $3}'`
original=`df . | grep % | grep / | awk '{print $5}'`
fi
printf "%s\n" "$freesize $original"

dd if=/dev/zero bs=2M 2>/dev/null | $JETCAT -f 5000 -p $freesize 2>/tmp/progress.out >0bits &


progress
value=$original
msg="Removing 0bits file"
if [ "$DIALOG" = "Xdialog" ]; then
$DIALOG --infobox "PAUSE FOR 10 SECONDS" 5 35 10000
else
$DIALOG --sleep 10 --infobox "PAUSE FOR 10 SECONDS" 5 25
fi

rm 0bits &
progress
if [ "$DIALOG" = "Xdialog" ]; then
$DIALOG --infobox "Drive Should now have all free space cleared" 5 60 10000
else
$DIALOG --sleep 10 --infobox "Drive Should now have all free space cleared" 5 50
fi

Page 124 of 245


Blank6.cpp A simple Borland C program
Clear free space on Fat and NTFS partitions.

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>
#include <dir.h>
#include <string.h>

void main(int argc, char **argv)


{
FILE *fp1;
char filename[13]="TESTA.TMP";
int i,num=100;
register unsigned long j;
unsigned long mb32=32L*1024L*1024L;
int n;
char x;

if (argc == 2)
{
i=toupper(argv[1][0])-'A';
setdisk(i);
}

chdir("\\");
clrscr();
while (x!=EOF)
{
strcpy(filename,"TEST");
sprintf(&filename[4],"%3d",num++);
strcat(filename,".TMP");
fp1=fopen(filename,"wb");
printf("\n%c:\\%s 2GB FILE 64 BLOCKS OF 32MB EACH\n[%64s]\r[",getdisk()+ 'A',filename," ");
for(i=0;i<64;i++)
{
for (j=0;j<mb32;j++)
{
x=putc(NULL,fp1);
if (x==EOF)
j=mb32;
}
printf("%c",177);
if (x==EOF)
i=64;
}
fclose(fp1);
}

Page 125 of 245


printf("\n\nDONE\n");
do
{
strcpy(filename,"TEST");
sprintf(&filename[4],"%3d",--num);
strcat(filename,".TMP");
printf("\nDeleting File - %s",filename);
remove(filename);
} while (num>100);
printf("\n\nClearing completed\n");
}
Note: there is also a linux version of the blank6 as lblank6.cpp and cleandrive8.dialog that are
elsewhere on the CD.

Page 126 of 245


Disclaim File that discusses issues between early version of G4L and G4U.
Disclaimer concerning Copyright: Prior version(s) of g4l appear to have
been based on G4U a NetBSD-based bootfloppy/CD-ROM by
Hubert Feyrer <hubert@feyrer.de> Copyright(c) 1999,2000,2001,2002,2003,2004
G4U: http://www.feyrer.de/g4u/ http://www.feyrer.de/g4u/g4l.html
The G4L project had an earlier author (nme), who original started
the project. Then it moved to fra_step, who wrote the current
version. 0.14beta, which is vastly different than 0.10
In addition to information at the G4U site above
G4L: https://sourceforge.net/projects/g4l http://freshmeat.net/projects/g4l/
I've made modification to the g4l 0.14beta script to make
it better for my needs, and to provide this to others to use or not
I can not speak for the previous authors of G4U or G4L
I have currently load my modifications at a Fedora Server at my office
ftp://fedoragcc.dyndns.org
Hope this version is useful to you
Michael D. Setzer II, mikes@kuentos.guam.net
Computer Science Instructor, Guam Community College

Note: The above is designed to fit with in the limitations of the screen as other screens.
The very first versions of g4l were more of a translation g4u using netbsd to linux by the first
maintainer of g4l.
The second maintainer of g4l did a major reworking of g4l that made many changes in
structure and design.
When I started making modifications back with version 0.15, I added the above.
I've hope this has help to clear up the conflict.

Recent changes at http://www.feyrer.de/g4u/g4l.html


Status Updates
[2004-09-18]
Aparently the g4l author has decided to take his project off the net, instead of giving proper credit. But I'd like to add
two points to the text on his web page:
1. I didn't threaten him by law, just point out that he's violating copyright law
2. I didn't insist on him taking the site down, only put my name back in and give proper credit.
So the text on the g4l homepage ("He now wants to force me by law, to add his licencse and credits to the code I
wrote. This is not acceptable for me, so I quit work on g4l.Because of certain people, programming isn't much fun
anymore.") is what one gets when insisting on one's rights as author of free software.

Andy Ruhl has posted a nice comment on the issue WRT the GPL to the NetBSD-Advocacy list, and I think he has
a good point. Unfortunately.

[2004-10-19]
Aparently g4l re-appeared on freshmeat with a new maintainer, but not less arrogant & ignorant than the previous
one. Rumours also say that the latest version of g4l is still based on previous versions, and thus g4u. I haven't
found time to check this.

[2005-01-17]
Rick Moen has pointed out a few more points at the copyright infringement of the g4l people at the freshmeat
comment page, and he has also contacted me in private about the issue. He has also pointed me at the fact that the
issue has indeed made it to the "OSI" mailing list.

[2009-03-05]
Apparently recent versions of g4l now mention g4u as ancestor some way down the timeline. Nice!

Page 127 of 245


Files from the Resource Directory of
Development Kit.
Jetcat-mod7.c Filter program used in G4L
to output data for use in progress mapping.

/*
* jetcat (c)2004/GPL Oskar Schirmer, schirmer@scara.com
* measure, control and limit pipe throughput
*/

/*
* modifications done by Frank Stephen fra_step@yahoo.com
* now prints out sum of transferred data, only needed for g4l
* to show gauge/progress bar
*
*/

/* This is a rewrite of the above programs to just include the


* feature that is needed by g4l. Thus making it a little smaller.
* not sure if it makes it faster, but it seems to be as fast as
* any of my hard drives can read the data.
* this modification by Michael Setzer II mikes@kuentos.guam.net
*/

#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/time.h>

int main(int argc, char* argv[])


{
char c[8192];
int n, n1;
unsigned long time_offset = 0;
float mbrate;
float perc;
struct timeval beginning;
struct timeval tv;
float bfsize, bfsizek;
unsigned long long actsum;
// unsigned
long int thissec;
// unsigned long int elapse;
unsigned int elapse;
register int count2=0;
actsum=0;

Page 128 of 245


perc=0.0;
gettimeofday(&beginning, NULL);
sscanf(argv[4],"%f",&bfsize);
bfsizek = bfsize/1024.0;
thissec=beginning.tv_sec;
while ((n = read(0, &c, 8192))) // read pipe.
{
n1= write(STDOUT_FILENO, &c, n);
actsum+=8;
count2++;
// fprintf(stderr,"%d\n",n);
// If either Input goes to Zero for reading,
// or output goes to 0 when clearning disk space
if (n <= 0 || n1<=0)
break;
if (count2==512)
{
count2=0;
gettimeofday(&tv, NULL);
if ((tv.tv_sec % 5) ==0 && tv.tv_sec != thissec)
{
thissec=tv.tv_sec;
if (tv.tv_sec < beginning.tv_sec)
time_offset = 3600L * 24;
perc=(actsum*100.0/bfsize);
elapse=(long)(time_offset + tv.tv_sec - beginning.tv_sec);
mbrate = (actsum/1024.0)/elapse;
fprintf(stderr, "%.2f%% \t%12.2fMB of %.2fMB \ttime: %u:%02u:%02u %.2fMB/sec\n",
perc, actsum/1024.0, bfsizek, elapse / 3600, elapse / 60 % 60, elapse % 60, mbrate);
}
}
}
perc=100.0;
elapse=(long)(time_offset + tv.tv_sec - beginning.tv_sec);
mbrate = (actsum/1024.0)/elapse;
fprintf(stderr, "%.2f%%\t%12.2fMB of %.2fMB \ttime: %u:%02u:%02u %.2fMB/sec\n",
perc, actsum/1024.0, bfsizek, elapse / 3600, elapse / 60 % 60, elapse % 60, mbrate);
fprintf(stderr,"100\n");
return 0;
}

Page 129 of 245


Lblank7.c Linux c program
that can be used to clear free disk space by creating 2GB files until disk is full and then
delete files. This is required for Fat32 partitions.
#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(int argc, char **argv)


{
FILE *fp1;
char filename[13]="TESTA.TMP";
int i,num=100;
register unsigned long j;
unsigned long mb32=32L*1024L*1024L;
int n;
char x;
system("clear");
while (x!=EOF)
{
strcpy(filename,"TEST");
sprintf(&filename[4],"%3d",num++);
strcat(filename,".TMP");
fp1=fopen(filename,"wb");
fprintf(stderr,"\n%s 2GB FILE 64 BLOCKS OF 32MB EACH\n[%64s]\r[",filename," ");
for(i=0;i<64;i++)
{
for (j=0;j<mb32;j++)
{
x=putc(0,fp1);
if (x==EOF)
j=mb32;
}
fprintf(stderr,"%c",'>');
if (x==EOF)
i=64;
}
fclose(fp1);
}
fprintf(stderr,"\n\nDONE\n");
do
{
strcpy(filename,"TEST");
sprintf(&filename[4],"%3d",--num);
strcat(filename,".TMP");
fprintf(stderr,"\nDeleting File - %s",filename);
remove(filename);
} while (num>100);
fprintf(stderr,"\n\nClearing completed\n");
return 0;
}

Page 130 of 245


Ntfsreloc.c Ntfs relocation
program that is suppose to update information if ntfs partition is not restored to the
exact same location?
/*
ntfsreloc - deals with braindeadness with moving NTFS filesystems.
version 0.7

Copyright (C) 2006 Daniel J. Grace


Modified 2008 by Orgad Shaneh

This program modifies the geometry settings on an NTFS partition


as described in <http://thestarman.pcministry.com/asm/mbr/NTLDR.htm>.
It is needed for booting, as described in libntfs <http://www.linux-ntfs.org/doku.php?id=libntfs>

It will NOT work for Windows NT v3.5 and below.


It is designed for NT4/2000/XP and later versions.

Like any other program that tinkers with the contents of your HD, this
program may cause data corruption. USE AT YOUR OWN RISK. You have been warned.

This program is free software; you can redistribute it and/or


modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,


but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/

#define _LARGEFILE64_SOURCE
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <linux/hdreg.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <fcntl.h>

int flip(void *p, int size) {


ushort test;
int iter;
char *c;
char t;

Page 131 of 245


if (size % 2) return 1;

// Determine system architecture


test = 1;
c = (char *)&test;
if (*c) return 0;

// reverse bytes
c = p;
for (iter = 0 ; iter < size / 2; ++iter) {
t = c[iter];
c[iter] = c[size-iter-1];
c[size-iter-1] = t;
}
return 0;
}

int usage(char *progname) {


fprintf(stderr,
"adjust filesystem geometry for a NTFS partition"
"\nUsage: %s [-h # -t #] [-s start [-b]] [-w] [-f] [-p] device"
"\nwhere device points to an NTFS partition"
"\n"
"\nOptions:"
"\n-w:\t\tWrite new start sector to the partition."
"\n-h # -t #:\tSpecify number of heads and number of sectors per track"
"\n\t\tIf omitted, determined via ioctl."
"\n-s start:\tNew start sector to write."
"\n\t\tIf omitted, determined via ioctl."
"\n-b:\t\tProceed even if the specified device is not a"
"\n\t\tpartition (e.g. a regular file)"
"\n-f:\t\tForce the operation to occur even if device does not look"
"\n\t\tlike a valid NTFS partition or values are equal."
"\n-p:\t\tPrint debug information (values read, values requested etc.)"
"\n"
"\nThis utility displays the current starting sector as defined by the"
"\nthe filesystem. No change will actually be made without the -w"
"\noption."
"\n"
"\nExit status is 2 if an error occured, 1 if a change was made or is needed"
"\nor 0 if the filesystem already has the correct values."
"\n", progname
);
return 0;
}

off64_t last_sector(int device)


{
unsigned short sectorSize = 0;
unsigned long long totalSectors = 0;

if (lseek(device, 0x0bL, SEEK_SET) < 0) {

Page 132 of 245


perror("lseek");
exit(2);
}

if (read(device, &sectorSize, 2) != 2) {
fprintf(stderr, "Unable to read filesystem info.\n");
exit(2);
}

if (lseek(device, 0x28L, SEEK_SET) < 0) {


perror("lseek");
exit(2);
}

if (read(device, &totalSectors, 8) != 8) {
fprintf(stderr, "Unable to read filesystem info.\n");
exit(2);
}
flip(&sectorSize, 2);
flip(&totalSectors, 8);
return sectorSize * totalSectors;
}

struct ntfs_geometry {
unsigned short sectors;
unsigned short heads;
unsigned long start;
};

void flip_all(struct ntfs_geometry *geo) {


flip(&geo->heads, 2);
flip(&geo->sectors, 2);
flip(&geo->start, 4);
}

char optSpecifyStart = 0, optSpecifyHS = 0, optWrite = 0, optBlock = 0, optForce = 0, optPrint = 0;


char *optDeviceName = NULL;
struct ntfs_geometry opt_geom = {0, 0, 0};

void print(const char *s, ...)


{
va_list ap;
if (optPrint) {
va_start(ap, s);
vprintf(s, ap);
va_end(ap);
}
}

int read_options(int argc, char *argv[]) {


int i;
char opt;

Page 133 of 245


int readopts = 1;

if (argc <= 1) {
usage(argv[0]);
return 2;
}

// read options
for (i = 1 ; i < argc ; ++i) {
if (argv[i][0] == '-' && readopts) {
opt = argv[i][1];
// -h, -t and -s need a number to follow
if ((opt == 'h') || (opt == 't') || (opt == 's')) {
char *sizePtr, *endPtr;
if (argv[i][2]) {
sizePtr = &argv[i][2];
} else if (i+1 < argc) {
sizePtr = argv[++i];
} else {
fprintf(stderr, "ERROR: Size must be specified for option -%c\n", opt);
usage(argv[0]);
return 1;
}

switch (opt) {
case 'h': optSpecifyHS = 1; opt_geom.heads = strtoul(sizePtr, &endPtr, 10); break;
case 't': optSpecifyHS = 1; opt_geom.sectors = strtoul(sizePtr, &endPtr, 10); break;
case 's': optSpecifyStart = 1; opt_geom.start = strtoul(sizePtr, &endPtr, 10); break;
}

// assert the value is a number


if (endPtr == sizePtr || *endPtr) {
fprintf(stderr, "ERROR: Invalid size specified for option -%c\n", opt);
usage(argv[0]);
return 1;
}
continue;
}

if (opt && argv[i][2]) {


fprintf(stderr, "Unknown option '%s'\n", argv[i]);
usage(argv[0]);
return 1;
}

switch (opt) {
case '-': readopts = 0; break;
case 'b': optBlock = 1; break;
case 'w': optWrite = 1; break;
case 'f': optForce = 1; break;
case 'p': optPrint = 1; break;
default:

Page 134 of 245


fprintf(stderr, "Unknown option '%s'\n", argv[i]);
usage(argv[0]);
return 1;
}
continue;
}
// If we reach here, we're reading a device name
if (optDeviceName) {
fprintf(stderr, "Only one device may be specified\n");
usage(argv[0]);
return 1;
}
optDeviceName = argv[i];
}
if (!optDeviceName) {
fprintf(stderr, "No device name specified\n");
usage(argv[0]);
return 1;
}
return 0;
}

int main(int argc, char *argv[]) {


int device = 0;
int opt_res;
char haveGeom = 0;
off64_t lastsector = 0;
struct hd_geometry part_geom = {0, 0, 0, 0};
struct ntfs_geometry fs_geom = {0, 0, 0};
struct ntfs_geometry bak_geom = {0, 0, 0};
struct ntfs_geometry set_geom = {0, 0, 0};
const int geomsize = sizeof(struct ntfs_geometry);

puts("ntfsreloc version 0.7");

// read program options (into global variables)


opt_res = read_options(argc, argv);
if (opt_res) return opt_res;

// verify that we can open the device in readonly mode


if (!(device = open(optDeviceName, (optWrite ? O_RDWR : O_RDONLY) | O_SYNC))) {
perror("open");
return 2;
}

// check to see if it's a partition, and determine geometry


if (ioctl(device, HDIO_GETGEO, &part_geom)) {
if (!optBlock) {
fprintf(stderr, "Failed to read disk geometry. Perhaps this is not a partition?\n");
fprintf(stderr, "Verify that you are using the correct device or use the -b option.\n");
fprintf(stderr, "The exact error was:\n");
perror("ioctl");

Page 135 of 245


return 2;
} else if (!optSpecifyStart && optWrite) {
fprintf(stderr, "Failed to read disk geometry, and -s option was not specified.\n");
fprintf(stderr, "No update can be made without this information.\n");
fprintf(stderr, "The exact error was:\n");
perror("ioctl");
return 2;
}
} else {
haveGeom = 1;

if (!optForce && !part_geom.start) {


fprintf(stderr, "This looks like an entire disk (start=0) instead of a single partition.\n");
fprintf(stderr, "It will not be modified without the -f (force) option.\n");
if (optWrite) {
return 2;
}
}
}

// verify that it is an NTFS partition


if (lseek(device, 3L, SEEK_SET) < 0) {
perror("lseek");
return 2;
}

// read "NTFS" magic, or at least what should be


char ntfsMagic[4];
if (read(device, &ntfsMagic, 4) != 4 || memcmp(ntfsMagic, "NTFS", 4)) {
if (!optForce) {
fprintf(stderr, "This device does not appear to be a real NTFS volume.\n");
if (!optWrite) {
return 2;
}
}
}

// filesystem geometry
if (lseek(device, 0x18L, SEEK_SET) < 0) {
perror("lseek");
return 2;
}
if (read(device, &fs_geom, geomsize) != geomsize) {
fprintf(stderr, "Unable to read filesystem info.\n");
return 2;
}

flip_all(&fs_geom);

// backup sector
lastsector = last_sector(device);
if (lastsector == 0) {

Page 136 of 245


fprintf(stderr, "Unable to determine last (backup) sector!\n");
return 2;
}
if (lseek64(device, lastsector + 0x18L, SEEK_SET) < 0) {
perror("lseek64");
return 2;
}
if (read(device, &bak_geom, geomsize) != geomsize) {
fprintf(stderr, "Unable to read filesystem info.\n");
return 2;
}
flip_all(&bak_geom);

if (optSpecifyHS) {
if (!opt_geom.heads || !opt_geom.sectors) {
fprintf(stderr, "Must specify both heads and sectors per track or none!\n");
return 2;
}
}
// behavior description follows. HS and Start values indicates SpecifyHS and SpecifyStart
// part: use partition value
// fs : use filesystem value (don't change anything)
// opt : use user value

// HS Start tgt HS tgt Start


// 0 0 part part (if no partition geometry, use fs)
// 0 1 fs opt
// 1 0 opt fs
// 1 1 opt opt
if (!optSpecifyHS && !optSpecifyStart) {
if (haveGeom) {
set_geom.heads = part_geom.heads;
set_geom.sectors = part_geom.sectors;
set_geom.start = part_geom.start;
} else {
set_geom = fs_geom;
}
} else {
set_geom = opt_geom;
if (!optSpecifyStart) {
set_geom.start = fs_geom.start;
}
if (!optSpecifyHS) {
set_geom.heads = fs_geom.heads;
set_geom.sectors = fs_geom.sectors;
}
}
// print all details
print("\t\tHeads\tSectors\tStart\n");
if (haveGeom) {
print("partition:\t%d\t%d\t%lu\n", part_geom.heads, part_geom.sectors, part_geom.start);
}

Page 137 of 245


print("filesystem:\t%d\t%d\t%lu\n", fs_geom.heads, fs_geom.sectors, fs_geom.start);
print("backup sector\t%d\t%d\t%lu\n", bak_geom.heads, bak_geom.sectors, bak_geom.start);
print("target:\t\t%d\t%d\t%lu\n", set_geom.heads, set_geom.sectors, set_geom.start);

if (!memcmp(&set_geom, &fs_geom, geomsize)


&& !memcmp(&set_geom, &bak_geom, geomsize)
&& !optForce) {
puts("No changes neccessary.");
return 0;
}
if (!optWrite) {
puts("Changes will be written to disk only with -w flag");
return 0;
}
flip_all(&set_geom);
// write back changes
if (lseek(device, 0x18L, SEEK_SET) < 0) {
perror("lseek");
return 2;
}
if (write(device, &set_geom, geomsize) != geomsize) {
perror("write");
return 2;
}
// write to backup sector
if (lseek64(device, lastsector + 0x18L, SEEK_SET) < 0) {
perror("lseek64");
return 2;
}
if (write(device, &set_geom, geomsize) != geomsize) {
perror("write");
return 2;
}
if (fsync(device)) {
perror("fsync");
return 2;
}
if (close(device)) {
perror("close");
return 2;
}
puts("done!");
return 1;
}

Page 138 of 245


Files from root file system of G4L.
AES-ssh Encryption information file
on option to setup an encryption system to use with the g4l using a key file and
passphrase
Currently working on adding two more options to g4l.
Was hoping to get some help testing these options and comments on adding
support. Got no response from messages on either site. Did create basic
./getkey.sh script to copy files from an usb drive.

1. Adding option to local image copy to mount a remote directory via sshfs
/mnt/local, and then do backups via the ssh connection instead of using ftp.
I have tested the process on one systems, and got a speed of about 20MB/sec
overall. A full disk image via ftp usually averages to 30MB/sec, but that
includes the linux partition that is about 80% free space. So, there might
be even less of a performance hit, but this adds an encrypted connection
option, and also provides a method for those that can not use ftp. It uses
the sshfs, which may or may not work with all servers. I've used it on
Fedora 6 and Fedora 8 machines.

2. Adding an option on the Network menu to created encrypted image files


using aespipe. This process is described below. It requires creation of
a mykey1.gpg file and a passphrase file. Currently, the cd has a set of
these files for testing. The ideal would be to create a script that would
allow for getting these files onto the the ramdisk. This could be download
from an ftp server or from flash device or perhaps a ssh connection. At
the moment, this is just on the network option, and is a toggle.

I've currently made 14 versions of 0.27 so far.

At the moment, I've modified a copy of the regular g4l script g4l30b to
include these options.

If others are interested in testing, and making comments on what is the


best way to further implement the aespipe option.

Added option to use aespipe to created encrypted image files.


Currently only available on network option.

Encryption via aespipe.


AESPIPE by Jari Ruusu <jariruusu@users.sourceforge.net>
http://sourceforge.net/projects/loop-aes/

This was recommended by a user, and seems to work fine.


Have had some communication with the author.

The CD image has a test set of key and passphrase file created as a demo,
but should not be used for real encryption, since they are publicly available.

Page 139 of 245


/mykey1.gpg and /passphrase

The method used to create these came from the aespipe README file.

== section of README
Create 65 random encryption keys and encrypt those keys using gpg. Reading
from /dev/random may take indefinitely long if kernel's random entropy pool
is empty. If that happens, do some other work on some other console (use
keyboard, mouse and disks). Use of gpg-encrypted key file depends on
encrypted swap.

head -c 2925 /dev/random | uuencode -m - | head -n 66 | tail -n 65 \


| gpg --symmetric -a >mykey1.gpg

=== emd

The program using the aespipe to encrypt and decrypt using the following
additional code.

AESPIPE=" aespipe -K /mykey1.gpg -P /passphrase -G / | "


AESPIPEd="| aespipe -K /mykey1.gpg -P /passphrase -G / -d "

These variables are set if encryption is toggled on, and inserted into
the process. Otherwise the values are blank and have no effect on the
process.Currently the names of these files are hard coded, so one would
need to create you own key file and passphrase, and replace these.

You files could be downloaded from a secure location after booting from
the cd by various options and others.

ncftp -u user -p password ipaddress


get mykey1.gpg
get passphrase
quit

That puts the files on an ftp site, which you may or may not want to do.

Insert an USB device

mount /dev/sdx /mnt/local


cp /mnt/local/mykey1.gpg
cp /mnt/local/passphrase
umount /mnt/local

At this point, I will assume that users wanting to use encryption will
be more than capable of creating these files, and setting them up.
Later this could be further expanded and automated more.

Recommend testing you mykey1.gpg and passphrase files before making an


image file, since if it doesn't work the image will not.

Page 140 of 245


Following script is a quick test. It just creates a file with random
data, encrypts it, and then decrypts it. If the original file and decrypted
file produce the same results, it worked.

#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
## Set tab = 2 spaces for formatting

dd if=/dev/urandom of=./aes1.test bs=512 count=40


aespipe -K ./mykey1.gpg -P ./passphrase -G ./ <./aes1.test >./aes2.test
aespipe -K ./mykey1.gpg -P ./passphrase -G ./ -d <./aes2.test >./aes3.test
cmp -l ./aes1.test ./aes3.test

Very limited testing has been done so far.


With a 20GB NTFS partition.
None Encrypted image took 15m 55s
Encrypted image took 16m 35s

That works to be just about a 4% increase, but would depend on hardware,


so your results may be higher or lower. Test done with P4 2.8 machine.

Tis is only added to my working 0.27 alphas, and I'm currently a level 19
Have not yet released any of these publicly.

Added basic script getkey.sh to allow for copying gpg and passphrase file
via a usb device.

aestest2 File to test keyfile and image file to make sure they work correctly.
#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
## Set tab = 2 spaces for formatting
cd /
dd if=/dev/urandom of=./aes1.test bs=512 count=40
aespipe -K ./mykey1.gpg -P ./passphrase -G ./ <./aes1.test >./aes2.test
aespipe -K ./mykey1.gpg -P ./passphrase -G ./ -d <./aes2.test >./aes3.test
cmp -l ./aes1.test ./aes3.test
echo "cmp should result in no difference"
rm ./aes?.test -f

Page 141 of 245


Original Help File from version 0.14 of G4L
g4l - Frank Stephen 2004
Version 0.14

-- Some additional modification that I, Michael D. Setzer II, have made to the
Version 0.14 currently available at the sourceforge site.
Made it possible to use a non-anonymous ftp user
Allow for DHCP IP address
Set default to eth0
Set default to GZip
Show current settings of options on screen
Added letters to menu options to provide to selecting options by Letter
Modified progress bar routine to a single function instead of seperate ones.
Modified the progress by routine to show percentages with 2 decimal places
and to show the start and current times with the amount sent of destination size
Added a special option to allow for other commands to be run during the script.

I'm making my modifications available at my ftp server at the college


ftp://202.128.73.29

Michael D. Setzer II
Computer Science Instructor
mikes@kuentos.guam.net

- CHANGES SINCE LAST VERSION -

added new menu:


- select between RAW mode and file mode !

RAW Node: common g4l mode, copies every single bit of the
drive, including empty sectors, deleted files...everything!

File Mode: for those people who do not have the time
(or space!) to execute RAW mode. This mode accesses the
filesystem of the drive and writes only the sectors,
which are occupied by files. This is what the commercial
products do. As it is senseless to invent the wheel twice,
g4l launches the very cool 'partimage' to do this.
Be careful: If you need also deleted files and hidden
stuff for data recovery or sth like that, use RAW mode !

Check www.partimage.org for info on how to use partimage


in detail or from the command line.

g4l offers to launch the partimage server through the


'Launch server' option from where you can configure your
network card, mount the destination drive and launch
the partimage server.
Then remove the CD and boot your client. Away you go !

Page 142 of 245


added new utilities:
- added access to the very good dd_rescue and dd_rhelp tool !
If you have a drive with I/O errors (hardware failure,...)
this tool gets almost everything of it. Combined with
dd_rhelp it surrounds the defective sectors automatically.
A MUST have ! Thanks to the developers!

- added possibility to set I/O controller to 32bit and


UDMA66 transfer mode using 'hdparm' utility. Be careful:
This might hang your system if it does not support these
modes. If so, give it a reboot and do not this option
again!

added progress bars:


- every backup/restore option plus the zero-tool now features
a full progress bar. no more guesses how long backup/restore
will take. Be aware, that if restoring small images to large
drives, the progress bar will be inaccurate ! It might
happen that you restore, progress shows 30% and suddenly
you are finished :) This cannot be corrected, since g4l
cannot know the uncompressed filesize of the image at the
begining of the restore.
Progress will also fail for disks over 9.9 TeraByte :)

- INTRODUCTION -

First of all I want to say "Thank you" to 'nme' who allowed me to


use some lines of his code and supported me in taking control of
the project.

- LICENSE (if any) -

This Script is freeware. Get it, spread it, use it, modify it !
If you want to modify this script and put it on a website,
please drop me a mail so I know how to find it.
Also, only delete this helpfile if you have something better
on hand :)

As this script is based on the common Linux utils

BusyBox (www.busybox.net)
GNU coreutils (like 'dd') (www.gnu.org)
Linux Kernel 2.6.3 (www.kernel.org)
Dialog, based on Debian cdialog (dickey.his.com/dialog)
jetcat-mod, based on jetcat by Oskar Schirmer
(www.scara.com/~schirmer/o/jetcat/)
dd_rescue (www.garloff.de/kurt/linux/ddrrescue/)
dd_rhelp (www.kalysto.org/utilities/dd_rhelp/)
partimage (www.partimage.org)
and others

Page 143 of 245


be sure to respect their licenses.

- REQUIREMENTS -

If you downloaded the ISO file and just want to use this script,
you need the following:

For network use:


-ethernet card (common PCI and onboard cards are supported)
-FTP server: -in the same subnet
-must support filesize bigger than 2 GB
-must allow anonymous write access
-MUST HAVE DIRECTORY 'img' writeable, or
change variable $ftppath in ./g4l

Take a look at vsFTPd ! A very good one.

-a hard drive: IDE, SCSI or SATA types are supported

For local use:


-two hard drives of the types above

For Click'n'Clone:
-two hard drives of the types above

If you downloaded the development kit with all the sources and
want to modify the script and then burn your own ISO, you will
need the following to successfully compile and burn the CD:

-a running Linux box


-kernel >=2.6.3 sources (if you want to change kernel)
-LOOP device support
-mkisofs tools
-cdrecord

I hope i did not forget anything :)

- WARNINGS -

You should know what you do if you want to use this script:

First: THINK.
Second: THINK again.
Third: If you think you have thought enough, THINK again !
It is very easy to mess up your hard drive.

As usual, this script comes WITHOUT ANY WARRANTY. Do not blame me


if you ruined your partitions or data. I have tested this script
on several computers, including an old AMD K6, INTEL Celeron4,

Page 144 of 245


AMD Athlon XP with nForce2 Chipset and onboard LAN. It worked fine
for me. But I cannot test it under every environment. If it causes
trouble on your box, do NOT blame me. You have been warned :)

Don't forget, you can only:

-clone drives of the same size


-clone from smaller drive to bigger drive, leaves some space
unallocated/unpartitioned
-restore drives of the same size
-restore smaller to bigger drives (same as above)

If you are NOT using g4l in local mode, filesystems do NOT matter.
You can clone whatever you want, XFS, hpfs, you name it!
If you want to use local mode, the harddrive has of course to
be mounted to write the images to the root directory. Therefore
only the most common FS are supported (shown in g4l).

If you modified some drives partition table in any way, be sure


to reboot if you want to do something with this new partition.
Kernel has to re-read the partition table, if you do not reboot,
the kernel will work with the 'old' partition information instead!

- BUGS -

On some very old machines you might encounter an error message


telling something about "SPURIOUS INTERRUPT detected" or something
like that. This might be caused by old APIC modes. Try to disable
this setting in your BIOS.
I had this error sometimes on my old K6 machine, but everything
seemed to work anyway.

Report other bugs and/or problems to:

fra_step@yahoo.com

But please keep in mind: This is no commercial project, so if


I think your question is stupid or has already been answered here,
do not be angry if I won't answer your mail :)

Be patient.

Thanks and good luck,

Frank

Page 145 of 245


Instruct file that is displayed as part of the start process.

Basic Instruction for using G4L

Option 1: Enter g4l, and use menus to fill in options.


Option 2: Enter g4l with parameter options
Available Options that can be used
$1 - IP address of FTP Server
$2 - IMAGE NAME WITH EXTENSION
$3 - USERID and PASSWORD either of two formats
USERID:PASSWORD or '-u USERID -p PASSWORD'
$4 - dhcp (default to get ipaddress from dhcpd) or fixed ipaddress
$5 - change default directory from img to this
$6 - eth0 (default or other device)
$7 - reboot (blank no action, poweroff, reboot)
(after network backup or restore)

Examples: g4l 192.168.0.1 image1.lzo user1:password1 dhcp img2


g4l 192.168.0.1 image1.lzo '-u user1 -p password1' dhcp img2
g4l 192.168.0.1 image1.gz
parameters must be used in order, but later ones can be left off
[Front end script options] will prompt for ftpserverip, device default eth0
Option 3: fg4l [ftpserverip] [dev] [filename] (default front)
Option 4: efg4l [ftpserverip] [dev] [filename] (default front.bic)
Option 5: zxg4l [ftpserverip] [dev] [filename] userid:password
Option 6: zexg4l [ftpserverip] [dev] [filename] userid:password

Option 4 and 6 use bicode.o3 encoded frontend files

Page 146 of 245


Latest file that shows all the updates since 0.48
that I have added with each version of g4l over the years.
Released 0.53 2017/03/18
Updated build system to Fedora 24
kernel 4.4.22 2016/09/24 (bz4x4.22)
kernel 4.7.5 2016/09/24 (bz4x7.5)
kernel 4.7.5 now default kernel
kernel 4.8-rc8 2016/09/26 (bz4x8.rc8)
kernel 4.4.23 2016/09/30 (bz4x4.23)
kernel 4.7.6 2016/09/30 (bz4x7.6)
kernel 4.7.6 now default kernel
kernel 4.8.0 2016/10/02 (bz4x8.0)
kernel 4.4.24 2016/10/07 (bz4x4.24)
kernel 4.7.7 2016/10/07 (bz4x7.7)
kernel 4.7.7 now default kernel
kernel 4.8.1 2016/10/07 (bz4x8.1)
Upgraded busybox to 1.25.1
(udhcpc changed - default output to stderr?)
(adds info to output, so IP is -f4 instead of -f3)
Added VIRTIO to 4x8.1 kernel for testing??
kernel 3.18.43 2016/10/10 (bz3x18.43)
kernel 4.1.34 2016/10/10 (bz4x1.34)
kernel 4.9.rc1 2016/10/15 (bz4x9.rc1)
kernel 4.4.25 2016/10/16 (bz4x4.25)
kernel 4.7.8 2016/10/16 (bz4x7.8)
kernel 4.8.2 2016/10/16 (bz4x8.2)
kernel 4.8.2 now default kernel
kernel 4.4.26 2016/10/20 (bz4x4.26)
kernel 4.7.9 2016/10/20 (bz4x7.9)
kernel 4.8.3 2016/10/20 (bz4x8.3)
kernel 4.8.3 now default kernel
kernel 4.4.27 2016/10/22 (bz4x4.27)
kernel 4.7.10 2016/10/22 (bz4x7.10)
kernel 4.8.4 2016/10/22 (bz4x8.4)
kernel 4.8.4 now default kernel
kernel 3.18.44 2016/10/22 (bz3x18.44)
kernel 4.1.35 2016/10/23 (bz4x1.35)
kernel 4.9.rc2 2016/10/24 (bz4x9.rc2)
kernel 4.4.28 2016/10/28 (bz4x4.28)
kernel 4.8.5 2016/10/28 (bz4x8.5)
kernel 4.8.5 now default kernel
kernel 4.9.rc3 2016/10/29 (bz4x9.rc3)
kernel 4.4.29 2016/10/31 (bz4x4.29)
kernel 4.8.6 2016/10/31 (bz4x8.6)
kernel 4.8.6 now default kernel
kernel 4.4.30 2016/11/01 (bz4x4.30)
kernel 4.9.rc4 2016/11/05 (bz4x9.rc4)
kernel 4.8.7 2016/11/10 (bz4x8.7)
kernel 4.8.7 now default kernel
kernel 4.4.31 2016/11/10 (bz4x4.31)

Page 147 of 245


kernel 4.9.rc5 2016/11/13 (bz4x9.rc5)
kernel 4.4.32 2016/11/15 (bz4x4.32)
kernel 4.8.8 2016/11/15 (bz4x8.8)
kernel 4.8.8 now default kernel
kernel 4.4.33 2016/11/18 (bz4x4.33)
kernel 4.8.9 2016/11/18 (bz4x8.9)
kernel 4.8.9 now default kernel
kernel 4.9.rc6 2016/11/20 (bz4x9.rc6)
kernel 4.4.34 2016/11/21 (bz4x4.34)
kernel 4.8.10 2016/11/21 (bz4x8.10)
kernel 4.8.10 now default kernel
kernel 4.4.35 2016/11/26 (bz4x4.35)
kernel 4.8.11 2016/11/26 (bz4x8.11)
kernel 4.8.11 now default kernel
kernel 4.9.rc7 2016/11/27 (bz4x9.rc7)
kernel 4.1.36 2016/11/29 (bz4x1.36)
kernel 3.18.45 2016/11/30 (bz3x18.45)
kernel 4.4.36 2016/12/02 (bz4x4.36)
kernel 4.8.12 2016/12/02 (bz4x8.12)
kernel 4.8.12 now default kernel
kernel 4.9.rc7 2016/12/04 (bz4x9.rc8)
kernel 4.4.38 2016/12/10 (bz4x4.38)
kernel 4.8.14 2016/12/10 (bz4x8.14)
kernel 4.8.14 now default kernel
kernel 4.9.0 2016/12/11 (bz4x9.0)
kernel 4.4.39 2016/12/15 (bz4x4.39)
kernel 4.8.15 2016/12/15 (bz4x8.15)
kernel 4.8.15 now default kernel
NcFTP 3.2.6 (Dec 04, 2016) by Mike Gleason (http://www.NcFTP.com/contact/)
kernel 4.1.37 2016/12/24 (bz4x1.37)
kernel 3.18.46 2016/12/24 (bz3x18.46)
kernel 4.10.rc1 2016/12/26 (bz4x10.rc1)
kernel 4.10.rc2 2017/01/01 (bz4x10.rc2)
kernel 4.4.40 2017/01/06 (bz4x4.40)
kernel 4.8.16 2017/01/06 (bz4x8.16)
kernel 4.9.1 2017/01/06 (bz4x9.1)
kernel 4.9.1 now default kernel
kernel 4.10.rc3 2017/01/08 (bz4x10.rc3)
kernel 4.4.41 2017/01/09 (bz4x4.41)
kernel 4.8.17 2017/01/09 (bz4x8.17)
kernel 4.9.2 2017/01/09 (bz4x9.2)
kernel 4.9.2 now default kernel
busybox 1.26.2
kernel 4.4.42 2017/01/12 (bz4x4.42)
kernel 4.9.3 2017/01/12 (bz4x9.3)
kernel 4.9.3 now default kernel
kernel 4.4.43 2017/01/15 (bz4x4.43)
kernel 4.9.4 2017/01/15 (bz4x9.4)
kernel 4.9.4 now default kernel
kernel 4.10.rc4 2017/01/16 (bz4x10.rc4)
kernel 3.18.47 2017/01/18 (bz3x18.47)
kernel 4.1.38 2017/01/18 (bz4x1.38)

Page 148 of 245


kernel 4.4.44 2017/01/20 (bz4x4.44)
kernel 4.9.5 2017/01/20 (bz4x9.5)
kernel 4.9.5 now default kernel
kernel 4.10.rc5 2017/01/22 (bz4x10.rc5)
Added iperf program to test network speed
kernel 4.4.45 2017/01/26 (bz4x4.45)
kernel 4.9.6 2017/01/26 (bz4x9.6)
kernel 4.9.6 now default kernel
kernel 4.10.rc6 2017/01/29 (bz4x10.rc6)
kernel 4.4.46 2017/02/01 (bz4x4.46)
kernel 4.9.7 2017/02/01 (bz4x9.7)
kernel 4.9.7 now default kernel
kernel 4.4.47 2017/02/04 (bz4x4.47)
kernel 4.9.8 2017/02/04 (bz4x9.8)
kernel 4.9.8 now default kernel
kernel 4.10.rc7 2017/02/05 (bz4x10.rc7)
kernel 3.18.48 2017/02/08 (bz3x18.48)
kernel 4.4.48 2017/02/09 (bz4x4.48)
kernel 4.9.9 2017/02/09 (bz4x9.9)
kernel 4.9.9 now default kernel
kernel 4.10.rc8 2017/02/12 (bz4x10.rc8)
kernel 4.4.49 2017/02/14 (bz4x4.49)
kernel 4.9.10 2017/02/14 (bz4x9.10)
kernel 4.9.10 now default kernel
kernel 4.4.50 2017/02/18 (bz4x4.50)
kernel 4.9.11 2017/02/18 (bz4x9.11)
kernel 4.9.11 now default kernel
kernel 4.10.0 2017/02/19 (bz4x10.0)
kernel 4.4.51 2017/02/23 (bz4x4.51)
kernel 4.9.12 2017/02/23 (bz4x9.12)
kernel 4.9.12 now default kernel
kernel 4.4.52 2017/02/26 (bz4x4.52)
kernel 4.9.13 2017/02/26 (bz4x9.13)
kernel 4.9.13 now default kernel
kernel 4.10.1 2017/02/26 (bz4x10.1)
removed kernel 3.18.47
kernel 4.10.1 now default kernel
kernel 4.11-rc1 2017/03/05 (bz4x11.rc1)
kernel 4.4.53 2017/03/12 (bz4x4.53)
kernel 4.9.14 2017/03/12 (bz4x9.14)
kernel 4.10.2 2017/03/12 (bz4x10.2)
kernel 4.10.2 now default kernel
kernel 4.11-rc2 2017/03/12 (bz4x11.rc2)
kernel 4.4.54 2017/03/15 (bz4x4.54)
kernel 4.9.15 2017/03/15 (bz4x9.15)
kernel 4.10.3 2017/03/15 (bz4x10.3)
kernel 4.10.3 now default kernel
kernel 4.4.55 2017/03/18 (bz4x4.55)
kernel 4.9.16 2017/03/18 (bz4x9.16)
kernel 4.10.4 2017/03/18 (bz4x10.4)
kernel 4.10.4 now default kernel

Page 149 of 245


Released 0.52 2016/09/19
kernel 4.6-rc7 2016/05/08 (bz4x6.rc7)
kernel 3.14.69 2016/05/11 (bz3x14.69)
kernel 3.18.33 2016/05/11 (bz3x18.33)
kernel 4.1.24 2016/05/11 (bz4x1.24)
kernel 4.4.10 2016/05/11 (bz4x4.10)
kernel 4.5.4 2016/05/11 (bz4x5.4)
kernel 4.5.4 now default kernel
kernel 4.6.0 2016/05/15 (bz4x6.0)
kernel 3.14.70 2016/05/19 (bz3x14.70)
kernel 4.4.11 2016/05/19 (bz4x4.11)
kernel 4.5.5 2016/05/19 (bz4x5.5)
kernel 4.5.5 now default kernel
kernel 3.18.34 2016/05/21 (bz3x18.34)
kernel 4.1.25 2016/05/21 (bz4x1.25)
kernel 3.12.60 2016/05/23 (bz3x12.60)
kernel 4.7-rc1 2016/05/29 (bz4x7.rc1)
kernel 3.14.71 2016/06/01 (bz3x14.71)
kernel 4.4.12 2016/06/01 (bz4x4.12)
kernel 4.5.6 2016/06/01 (bz4x5.6)
kernel 4.6.1 2016/06/01 (bz4x6.1)
kernel 4.6.1 now default kernel
kernel 4.7-rc2 2016/06/05 (bz4x7.rc2)
kernel 3.18.35 2016/06/06 (bz3x18.35)
kernel 4.1.26 2016/06/06 (bz4x1.26)
kernel 3.14.72 2016/06/08 (bz3x14.72)
kernel 4.4.13 2016/06/08 (bz4x4.13)
kernel 4.5.7 2016/06/08 (bz4x5.7)
kernel 4.6.2 2016/06/08 (bz4x6.2)
kernel 4.6.2 now default kernel
kernel 4.7-rc3 2016/06/12 (bz4x7.rc3)
kernel 4.7-rc4 2016/06/20 (bz4x7.rc4)
update linux firmware files
kernel 3.18.36 2016/06/23 (bz3x18.36)
kernel 4.1.27 2016/06/23 (bz4x1.27)
busybox 1.25.0
kernel 3.14.73 2016/06/24 (bz3x14.73)
kernel 4.4.14 2016/06/24 (bz4x4.14)
kernel 4.6.3 2016/06/24 (bz4x6.3)
kernel 4.6.3 now default kernel
busybox 1.24.2 downgraded. New version sends messages to stderr
instead of stdout for somethings. Also, messages changed to all
lower case, whereas past has had first letter cap? Not sure why
the changes were made, but this breaks current script processes.
Have sent message to busybox list, but no response yet.
kernel 4.7-rc5 2016/06/27 (bz4x7.rc5)
kernel 4.7-rc6 2016/07/04 (bz4x7.rc6)
kernel 4.7-rc7 2016/07/11 (bz4x7.rc7)
kernel 4.4.15 2016/07/11 (bz4x4.15)
kernel 4.6.4 2016/07/11 (bz4x6.4)
kernel 4.6.4 now default kernel
kernel 3.18.37 2016/07/14 (bz3x18.37)

Page 150 of 245


kernel 4.1.28 2016/07/14 (bz4x1.28)
kernel 4.7.0 2016/07/24 (bz4x7.0)
kernel 3.14.74 2016/07/27 (bz3x14.74)
kernel 4.4.16 2016/07/27 (bz4x4.16)
kernel 4.6.5 2016/07/27 (bz4x6.5)
kernel 4.6.5 now default kernel
kernel 3.18.38 2016/07/30 (bz3x18.38)
kernel 4.1.29 2016/07/30 (bz4x1.29)
kernel 4.8-rc1 2016/08/08 (bz4x8.rc1)
kernel 3.14.75 2016/08/10 (bz3x14.75)
kernel 3.18.39 2016/08/09 (bz3x18.39)
kernel 4.4.17 2016/08/10 (bz4x4.17)
kernel 4.6.6 2016/08/10 (bz4x6.6)
kernel 4.6.6 now default kernel
rebuilt 4.6.6 4.7.0 4.8-rc1 kernels with NVM
kernel 4.8-rc2 2016/08/15 (bz4x8.rc2)
kernel 3.14.76 2016/08/16 (bz3x14.76)
kernel 4.4.18 2016/08/16 (bz4x4.18)
kernel 4.6.7 2016/08/16 (bz4x6.7)
kernel 4.7.1 2016/07/16 (bz4x7.1)
kernel 4.7.1 now default kernel
kernel 3.14.77 2016/08/20 (bz3x14.77)
kernel 4.4.19 2016/08/20 (bz4x4.19)
kernel 4.7.2 2016/08/20 (bz4x7.2)
kernel 4.7.2 now default kernel
kernel 4.8-rc3 2016/08/21 (bz4x8.rc3)
kernel 3.18.40 2016/08/22 (bz3x18.40)
kernel 4.1.31 2016/08/22 (bz4x1.31)
kernel 4.8-rc4 2016/08/28 (bz4x8.rc4)
Virtual Box support NVME disk, so tested the
NVME and it seems to be recognized with no issues
with the latest kernels 4.6.x and above.
kernel 3.18.41 2016/09/04 (bz3x18.41)
kernel 4.1.32 2016/09/04 (bz4x1.32)
kernel 4.8-rc5 2016/09/04 (bz4x8.rc5)
kernel 3.14.78 2016/09/07 (bz3x14.78)
kernel 4.4.20 2016/09/07 (bz4x4.20)
kernel 4.7.3 2016/09/07 (bz4x7.3)
kernel 4.7.3 now default kernel
kernel 4.8-rc6 2016/09/12 (bz4x8.rc6)
kernel 4.4.21 2016/09/15 (bz4x4.21)
kernel 4.7.4 2016/09/15 (bz4x7.4)
kernel 4.7.4 now default kernel
kernel 3.18.42 2016/09/17 (bz3x18.42)
kernel 4.1.33 2016/09/17 (bz4x1.33)
kernel 4.8-rc7 2016/09/19 (bz4x8.rc7)

Released 0.51 2016/05/05


library update
kernel 4.4.rc7 2015/12/28 (bz4x4.rc7)
Updated Grub4dos 0.4.5c files to 12/31/2015
kernel 4.4.rc8 2016/01/03 (bz4x4.rc8)

Page 151 of 245


kernel 3.12.52 2016/01/09 (bz3x12.52)
kernel 4.4.0 2016/01/10 (bz4x4.0)
Updated Grub4dos 0.4.5c files to 01/18/2016
kernel 3.14.58 2016/01/23 (bz3x14.59)
kernel 4.1.16 2016/01/23 (bz4x1.16)
kernel 4.3.4 2016/01/23 (bz4x3.4)
kernel 4.3.4 now default kernel
kernel 4.5.rc1 2016/01/24 (bz4x5.rc1)
kernel 4.2.8 removed
kernel 3.18.26 2016/01/25 (bz3x18.26)
kernel 3.12.53 2016/01/27 (bz3x12.53)
kernel 3.14.60 2016/01/29 (bz3x14.60)
Updated Linux Firmware 2016/01/19
kernel 4.1.17 2016/01/31 (bz4x1.17)
kernel 4.3.5 2016/01/31 (bz4x3.5)
kernel 4.4.1 2016/01/31 (bz4x4.1)
kernel 4.4.1 now default kernel
kernel 4.5.rc2 2016/02/01 (bz4x5.rc2)
kernel 4.5.rc3 2016/02/07 (bz4x5.rc3)
kernel 4.5.rc4 2016/02/14 (bz4x5.rc4)
kernel 3.12.54 2016/02/15 (bz3x12.54)
kernel 3.18.27 2016/02/15 (bz3x18.27)
kernel 4.1.18 2016/02/15 (bz4x1.18)
kernel 3.14.61 2016/02/17 (bz3x14.61)
kernel 4.4.2 2016/02/17 (bz4x4.2)
kernel 4.4.2 now default kernel
kernel 4.3.6 2016/02/19 (bz4x3.6)
kernel 4.5.rc5 2016/02/20 (bz4x5.rc5)
kernel 3.14.62 2016/02/25 (bz3x14.62)
kernel 4.4.3 2016/02/25 (bz4x4.3)
kernel 4.4.3 now default kernel
kernel 3.12.55 2016/02/26 (bz3x12.55)
kernel 4.5.rc6 2016/02/28 (bz4x5.rc6)
kernel 3.14.63 2016/03/03 (bz3x14.63)
kernel 4.4.4 2016/03/03 (bz4x4.4)
kernel 4.4.4 now default kernel
kernel 3.18.28 2016/03/04 (bz3x18.28)
kernel 4.1.19 2016/03/04 (bz4x1.19)
kernel 4.5.rc7 2016/03/06 (bz4x5.rc7)
kernel 3.12.56 2016/03/08 (bz3x12.56)
kernel 3.14.64 2016/03/09 (bz3x14.64)
kernel 4.4.5 2016/03/09 (bz4x4.5)
kernel 4.4.5 now default kernel
kernel 4.5.0 2016/03/14 (bz4x5.0)
kernel 3.14.65 2016/03/16 (bz3x14.65)
kernel 4.4.6 2016/03/16 (bz4x4.6)
kernel 4.4.6 now default kernel
kernel 3.18.29 2016/03/17 (bz3x18.29)
kernel 4.1.20 2016/03/17 (bz4x1.20)
Updated Linux Firmware 2016/03/18
kernel 3.12.57 2016/03/08 (bz3x12.57)
busybox 1.24.2 2016/03/25

Page 152 of 245


kernel 4.6-rc1 2016/03/26 (bz4x6.rc1)
Working on getting EFI support??
Moved some files in CD root to subdirectories
kernel 4.6-rc2 2016/04/03 (bz4x6.rc2)
kernel 3.18.30 2016/04/03 (bz3x18.30)
kernel 4.1.21 2016/04/03 (bz4x1.21)
changed to genisoimage from mkisofs in makecd and makecdrm
Seems Fedora links mkisofs to genisoimage, so in trying to
add EFI support better to use the matching build options
from Syslinux web site for genisoimage. Still no luck with EFI?
kernel 4.6-rc3 2016/04/11 (bz4x6.rc3)
kernel 3.14.66 2016/04/12 (bz3x14.66)
kernel 4.4.7 2016/04/12 (bz4x4.7)
kernel 4.5.1 2016/04/12 (bz4x5.1)
kernel 4.5.1 now default kernel
kernel 3.12.58 2016/04/13 (bz3x12.58)
kernel 4.6-rc4 2016/04/18 (bz4x6.rc4)
kernel 3.18.31 2016/04/19 (bz3x18.31)
kernel 4.1.22 2016/04/19 (bz4x1.22)
kernel 3.14.67 2016/04/20 (bz3x14.67)
kernel 4.4.8 2016/04/20 (bz4x4.8)
kernel 4.5.2 2016/04/20 (bz4x5.2)
kernel 4.5.2 now default kernel
kernel 3.18.32 2016/04/23 (bz3x18.32)
kernel 4.6-rc5 2016/04/24 (bz4x6.rc5)
kernel 4.1.23 2016/04/25 (bz4x1.23)
kernel 3.12.59 2016/04/27 (bz3x12.59)
kernel 4.6-rc6 2016/05/01 (bz4x6.rc6)
kernel 3.14.68 2016/05/04 (bz3x14.68)
kernel 4.4.9 2016/05/04 (bz4x4.9)
kernel 4.5.3 2016/05/04 (bz4x5.3)
kernel 4.5.3 now default kernel

Released 0.50 2015/12/24


Upgraded to Fedora 22 base system
kernel 4.3.rc3 2015/09/27 (bz4x3.rc3)
kernel 4.1.9 2015/09/29 (bz4x1.9)
kernel 4.2.2 2015/09/29 (bz4x2.2)
kernel 4.2.2 now default kernel
kernel 3.10.90 2015/10/01 (bz3x10.90)
kernel 3.14.54 2015/10/01 (bz3x14.54)
kernel 3.18.22 2015/10/01 (bz3x18.22)
kernel 4.1.10 2015/10/03 (bz4x1.10)
kernel 4.2.3 2015/10/03 (bz4x2.3)
kernel 4.2.3 now default kernel
kernel 4.3.rc4 2015/10/04 (bz4x3.rc4)
kernel 3.12.49 2015/10/07 (bz3x12.49)
kernel 4.3.rc5 2015/10/11 (bz4x3.rc5)
busybox 1.24.0 2015/10/12
Remove kernel 3.10.90
Added NOSMP menu to syslinux.cfg since
some cpus get kernel panics with 4.1.x kernels

Page 153 of 245


and above without the nosmp option
kernel 4.3.rc6 2015/10/18 (bz4x3.rc6)
kernel 3.14.55 2015/10/22 (bz3x14.55)
kernel 4.1.11 2015/10/22 (bz4x1.11)
kernel 4.2.4 2015/10/22 (bz4x2.4)
kernel 4.2.4 now default kernel
busybox 1.24.1 2015/10/24
kernel 4.3.rc7 2015/10/25 (bz4x3.rc7)
kernel 3.14.56 2015/10/27 (bz3x14.56)
kernel 4.1.12 2015/10/27 (bz4x1.12)
kernel 4.2.5 2015/10/27 (bz4x2.5)
kernel 4.2.5 now default kernel
kernel 3.18.23 2015/10/29 (bz3x18.23)
kernel 4.3.0 2015/11/02 (bz4x3.0)
kernel 3.18.24 2015/10/31 (bz3x18.24)
kernel 3.12.50 2015/11/02 (bz3x12.50)
kernel 3.14.57 2015/11/09 (bz3x14.57)
kernel 4.1.13 2015/11/09 (bz4x1.13)
kernel 4.2.6 2015/11/09 (bz4x2.6)
kernel 4.2.6 now default kernel
Update on NOSMP option, seems kernel issue
was resolved with kernel 4.2.4 and above.
kernel 3.12.51 2015/11/25 (bz3x12.51)
Updated firmware files
Done testing with bz4x4.rc kernels, but have
issues with seeing nic in virtualbox testing.
Nic only shows up with failsafe boot??
Two patches added to busybox
bz4x4.rc4 seems to have fixed kernel issue.
kernel 4.4.rc4 2015/12/06 (bz4x4.rc4)
kernel 3.14.58 2015/12/09 (bz3x14.58)
kernel 4.1.14 2015/12/09 (bz4x1.14)
kernel 4.2.7 2015/12/09 (bz4x2.7)
kernel 4.2.7 now default kernel
kernel 4.3.1 2015/12/09 (bz4x3.1)
Remove nosmp option, since kernel problem fixed.
kernel 4.3.2 2015/12/10 (bz4x3.2)
kernel 4.3.2 now default kernel
kernel 4.4.rc5 2015/12/14 (bz4x4.rc5)
kernel 4.1.15 2015/12/15 (bz4x1.15)
kernel 4.2.8 2015/12/15 (bz4x2.8)
kernel 4.3.3 2015/12/15 (bz4x3.3)
kernel 4.3.3 now default kernel
Added udhcpd to busybox to add dhcpd option
kernel 3.18.25 2015/12/15 (bz3x18.25)
Updated Grub4dos 0.4.5c files to 12/16/2015
kernel 4.4.rc6 2015/12/21 (bz4x4.rc6)
Now have udhcpd setup figured out.
Boot system, and it fails to get IP if no dhcpd server.
ifconfig eth0 up 192.168.0.1
udhcpd
Then other systems should get IPs starting with 192.168.0.20

Page 154 of 245


/etc/udhcpd.conf has the defaults from busybox example.
added setdhcpd script to activate eth0 and start udhcpd
Updated Grub4dos 0.4.5c files to 12/24/2015

Released 0.49 2015/09/21


Upgraded to Fedora 21 base system
kernel 4.0-rc4 2015/03/16 (bz4x0.rc4)
kernel 3.10.72 2015/03/18 (bz3x10.72)
kernel 3.14.36 2015/03/18 (bz3x14.36)
kernel 3.19.2 2015/03/18 (bz3x19.2)
kernel 3.19.2 now default kernel
kernel 3.12.39 2015/03/19 (bz3x12.39)
Updated busybox 1.23.2 2015/03/22
kernel 4.0-rc5 2015/03/22 (bz4x0.rc5)
kernel 3.18.10 2015/03/24 (bz3x18.10)
Updated Linux Firmware 2015/03/26
kernel 3.10.73 2015/03/26 (bz3x10.73)
kernel 3.14.37 2015/03/26 (bz3x14.37)
kernel 3.19.3 2015/03/26 (bz3x19.3)
kernel 3.19.3 now default kernel
kernel 4.0-rc6 2015/03/29 (bz4x0.rc6)
kernel 3.18.11 2015/04/04 (bz3x18.11)
kernel 4.0-rc7 2015/04/06 (bz4x0.rc7)
Updated ntfsprogs 2015/03/14
kernel 3.12.40 2015/04/09 (bz3x12.40)
Update Grub4dos files
kernel 4.0.0 2015/04/12 (bz4x0.0)
kernel 3.10.74 2015/04/13 (bz3x10.74)
kernel 3.14.38 2015/04/13 (bz3x14.38)
kernel 3.19.4 2015/04/13 (bz3x19.4)
kernel 3.19.4 now default kernel
Updated g4l30o11 script with clearing swap partition
Updated cleandrive8.dialog script with clearing swap partition
TestDisk 7.0 Released 04/18/2015
kernel 3.10.75 2015/04/19 (bz3x10.75)
kernel 3.14.39 2015/04/19 (bz3x14.39)
kernel 3.19.5 2015/04/19 (bz3x19.5)
kernel 3.19.5 now default kernel
kernel 3.18.12 2015/04/20 (bz3x18.12)
kernel 4.1.rc1 2015/04/27 (bz4x1.rc1)
kernel 3.10.76 2015/04/29 (bz3x10.76)
kernel 3.14.40 2015/04/29 (bz3x14.40)
kernel 3.19.6 2015/04/29 (bz3x19.6)
kernel 4.0.1 2015/04/29 (bz4x0.1)
kernel 4.0.1 now default kernel
Correction to cleandialog8.dialog script
kernel 3.12.41 2015/04/30 (bz3x12.41)
kernel 4.1.rc2 2015/05/04 (bz4x1.rc2)
kernel 3.12.42 2015/05/04 (bz3x12.42)
kernel 3.10.77 2015/05/06 (bz3x10.77)
kernel 3.14.41 2015/05/06 (bz3x14.41)
kernel 3.18.13 2015/05/05 (bz3x18.13)

Page 155 of 245


kernel 3.19.7 2015/05/06 (bz3x19.7)
kernel 4.0.2 2015/05/06 (bz4x0.2)
kernel 4.0.2 now default kernel
kernel 4.1.rc3 2015/05/10 (bz4x1.rc3)
kernel 3.19.8 2015/05/11 (bz3x19.8)
kernel 3.10.78 2015/05/13 (bz3x10.78)
kernel 3.14.42 2015/05/13 (bz3x14.42)
kernel 4.0.3 2015/05/13 (bz4x0.3)
kernel 4.0.3 now default kernel
Updated some support programs and libraries
Updated /lib/firmware files
kernel 3.10.79 2015/05/17 (bz3x10.79)
kernel 3.14.43 2015/05/17 (bz3x14.43)
kernel 4.0.4 2015/05/17 (bz4x0.4)
kernel 4.0.4 now default kernel
kernel 4.1.rc4 2015/05/18 (bz4x1.rc4)
Updated grub4dos files to 5/18 0.4.5c
kernel 3.12.43 2015/05/20 (bz3x12.43)
kernel 3.18.14 2015/05/20 (bz3x18.14)
kernel 4.1.rc5 2015/05/25 (bz4x1.rc5)
Updated support files and libraries
Set 4.1.rcx kernel to nosmp option panics without??
kernel 4.1.rc6 2015/06/01 (bz4x1.rc6)
Modified primary script to filter /dev/ram0 from
partition lists. 4.x kernels now are showing ram0
in /proc/partitions.
kernel 3.10.80 2015/06/06 (bz3x10.80)
kernel 3.14.44 2015/06/06 (bz3x14.44)
kernel 4.0.5 2015/06/06 (bz4x0.5)
kernel 4.0.5 now default kernel
Update to ntfs programs and libraries (yum update)
kernel 4.1.rc7 2015/06/08 (bz4x1.rc7)
Update lib/firmare 2015/06/11
Updated libfuse
kernel 3.18.15 2015/06/13 (bz3x18.15)
kernel 3.18.16 2015/06/14 (bz3x18.16)
kernel 4.1.rc8 2015/06/15 (bz4x1.rc8)
kernel 3.12.44 2015/06/15 (bz3x12.44)
remove /lib/firmware/brcm and ti-connectivity
since they seem to be wireless only.
Only actually had request for bnx2 and bnx2x firmware
from users, but added the complete firmware, but it has
been growing in size.
kernel 4.1.0 2015/06/22 (bz4x1.0)
kernel 3.10.81 2015/06/22 (bz3x10.81)
kernel 3.14.45 2015/06/23 (bz3x14.45)
kernel 4.0.6 2015/06/23 (bz4x0.6)
kernel 4.0.6 now default kernel
kernel 3.19.8 Dropped old
kernel 3.10.82 2015/06/29 (bz3x10.82)
kernel 3.14.46 2015/06/29 (bz3x14.46)
kernel 3.18.17 2015/06/28 (bz3x18.17)

Page 156 of 245


kernel 4.0.7 2015/06/29 (bz4x0.7)
kernel 4.0.7 now default kernel
kernel 4.1.1 2015/06/29 (bz4x1.1)
kernel 3.10.83 2015/07/04 (bz3x10.83)
kernel 3.14.47 2015/07/04 (bz3x14.47)
kernel 4.2.rc1 2015/07/06 (bz4x2.rc1)
kernel 3.10.84 2015/07/10 (bz3x10.84)
kernel 3.14.48 2015/07/10 (bz3x14.48)
kernel 3.18.18 2015/07/10 (bz3x18.18)
kernel 4.0.8 2015/07/10 (bz4x0.8)
kernel 4.0.8 now default kernel
kernel 4.1.2 2015/07/10 (bz4x1.2)
Modified rcS to ignore standard firmware message
kernel 4.2.rc2 2015/07/12 (bz4x2.rc2)
kernel 4.2.rc3 2015/07/19 (bz4x2.rc3)
kernel 3.18.19 2015/07/21 (bz3x18.19)
kernel 4.0.9 2015/07/21 (bz4x0.9)
kernel 4.0.9 now default kernel
kernel 4.1.3 2015/07/21 (bz4x1.3)
kernel 4.2.rc4 2015/07/26 (bz4x2.rc4)
kernel 3.12.45 2015/07/30 (bz3x12.45)
kernel 4.2.rc5 2015/08/03 (bz4x2.rc5)
kernel 3.10.85 2015/08/03 (bz3x10.85)
kernel 3.14.49 2015/08/03 (bz3x14.49)
kernel 4.1.4 2015/08/03 (bz4x1.4)
kernel 4.1.4 now default kernel
kernel 3.12.46 2015/08/07 (bz3x12.46)
kernel 3.18.20 2015/08/08 (bz3x18.20)
kernel 4.2.rc6 2015/08/09 (bz4x2.rc6)
kernel 3.10.86 2015/08/10 (bz3x10.86)
kernel 3.14.50 2015/08/10 (bz3x14.50)
kernel 4.1.5 2015/08/10 (bz4x1.5)
kernel 4.1.5 now default kernel
kernel 4.2.rc7 2015/08/16 (bz4x2.rc7)
kernel 3.10.87 2015/08/17 (bz3x10.87)
kernel 3.14.51 2015/08/17 (bz3x14.51)
kernel 4.1.6 2015/08/17 (bz4x1.6)
kernel 4.1.6 now default kernel
kernel 4.2.rc8 2015/08/24 (bz4x2.rc8)
kernel 3.12.47 2015/08/27 (bz3x12.47)
kernel 4.2.0 2015/08/30 (bz4x2.0)
kernel 4.2.0 now default kernel
kernel 3.18.21 2015/08/31 (bz3x18.21)
kernel 4.0.9 2015/07/21 (bz4x0.9)Deleted
kernel 4.3.rc1 2015/09/13 (bz4x3.rc1)
kernel 3.10.88 2015/09/13 (bz3x10.88)
kernel 3.14.52 2015/09/13 (bz3x14.52)
kernel 4.1.7 2015/09/13 (bz4x1.7)
kernel 3.12.48 2015/09/18 (bz3x12.48)
kernel 4.3.rc2 2015/09/20 (bz4x3.rc2)
kernel 3.10.89 2015/09/21 (bz3x10.89)
kernel 3.14.53 2015/09/21 (bz3x14.53)

Page 157 of 245


kernel 4.1.8 2015/09/21 (bz4x1.8)
kernel 4.2.1 2015/09/21 (bz4x2.1)
kernel 4.2.1 now default kernel

Released 0.48 2015/03/15


kernel 3.12.32 2014/11/05 (bz3x12.32)
Added check for no selection on Clone menu
kernel 3.18-rc4 2014/11/09 (bz3x18.rc4)
kernel 3.10.60 2014/11/14 (bz3x10.60)
kernel 3.14.24 2014/11/14 (bz3x14.24)
Updated firmware files
kernel 3.17.3 2014/11/14 (bz3x17.3)
kernel 3.17.3 now default kernel
Update Grub4dos files
kernel 3.18-rc5 2014/11/17 (bz3x18.rc5)
updated f3read and f3write programs
kernel 3.12.33 2014/11/20 (bz3x12.33)
kernel 3.10.61 2014/11/21 (bz3x10.61)
kernel 3.14.25 2014/11/21 (bz3x14.25)
kernel 3.17.4 2014/11/21 (bz3x17.4)
kernel 3.17.4 now default kernel
kernel 3.18-rc6 2014/11/23 (bz3x18.rc6)
kernel 3.18-rc7 2014/12/01 (bz3x18.rc7)
kernel 3.12.34 2014/12/05 (bz3x12.34)
kernel 3.10.62 2014/12/06 (bz3x10.62)
kernel 3.14.26 2014/12/06 (bz3x14.26)
kernel 3.17.5 2014/12/06 (bz3x17.5)
kernel 3.17.5 now default kernel
kernel 3.17.6 2014/12/07 (bz3x17.6)
kernel 3.17.6 now default kernel
kernel 3.18.0 2014/12/07 (bz3x18.0)
Updated grub4dos 0.4.5c 11/27/2014
kernel 3.12.35 2014/12/10 (bz3x12.35)
Updated firmware files
kernel 3.10.63 2014/12/16 (bz3x10.63)
kernel 3.14.27 2014/12/16 (bz3x14.27)
kernel 3.17.7 2014/12/16 (bz3x17.7)
kernel 3.17.7 now default kernel
kernel 3.18.1 2014/12/16 (bz3x18.1)
Upgraded f3read and f3write to version 5
Updated grub4dos files to 0.45c 2014/12/17
kernel 3.15 removed since no longer updated
kernel 3.19.rc1 2014/12/21 (bz3x19.rc1)
kernel 3.18.1 now default kernel
kernel 3.16 removed since no longer updated
updated cleandrive8 and cleandrive8.dialog issue
with use with dash as shell on ubuntu 14.4
Updated busybox from 1.22.1 to 1.23.0
kernel 3.19.rc2 2014/12/29 (bz3x19.rc2)
kernel 3.19.rc3 2015/01/06 (bz3x19.rc3)
kernel 3.10.64 2015/01/08 (bz3x10.64)
kernel 3.14.28 2015/01/08 (bz3x14.28)

Page 158 of 245


kernel 3.17.8 2015/01/08 (bz3x17.8)
kernel 3.18.2 2015/01/08 (bz3x18.2)
kernel 3.18.2 now default kernel
kernel 3.19.rc4 2015/01/11 (bz3x19.rc4)
kernel 3.12.36 2015/01/14 (bz3x12.36)
kernel 3.10.65 2015/01/16 (bz3x10.65)
kernel 3.14.29 2015/01/16 (bz3x14.29)
kernel 3.18.3 2015/01/16 (bz3x18.3)
kernel 3.18.3 now default kernel
kernel 3.19.rc5 2015/01/18 (bz3x19.rc5)
Fedora updates of support programs (bash and others)
kernel 3.19.rc6 2015/01/26 (bz3x19.rc6)
Updated grub4dos files to 0.45c 2015/01/20
Updated busybox from 1.23.0 to 1.23.1
kernel 3.10.66 2015/01/27 (bz3x10.66)
kernel 3.14.30 2015/01/27 (bz3x14.30)
kernel 3.18.4 2015/01/27 (bz3x18.4)
kernel 3.18.4 now default kernel
kernel 3.10.67 2015/01/30 (bz3x10.67)
kernel 3.14.31 2015/01/30 (bz3x14.31)
kernel 3.18.5 2015/01/30 (bz3x18.5)
kernel 3.18.5 now default kernel
kernel 3.12.37 2015/01/30 (bz3x12.37)
kernel 3.19.rc7 2015/02/02 (bz3x19.rc7)
kernel 3.10.68 2015/02/06 (bz3x10.68)
kernel 3.14.32 2015/02/06 (bz3x14.32)
kernel 3.18.6 2015/02/06 (bz3x18.6)
kernel 3.18.6 now default kernel
kernel 3.19.0 2015/02/09 (bz3x19.0)
kernel 3.10.69 2015/02/11 (bz3x10.69)
kernel 3.14.33 2015/02/11 (bz3x14.33)
kernel 3.18.7 2015/02/11 (bz3x18.7)
kernel 3.18.7 now default kernel
Updated grub4dos 2015/02/09
Applied patch to busybox
kernel 3.12.38 2015/02/19 (bz3x12.38)
kernel 3.19.0 now default kernel
kernel 4.0-rc1 2015/02/23 (bz4x0.rc1)
Number of support and library updates
kernel 3.10.70 2015/02/27 (bz3x10.70)
kernel 3.14.34 2015/02/27 (bz3x14.34)
kernel 3.18.8 2015/02/27 (bz3x18.8)
kernel 4.0-rc2 2015/03/03 (bz4x0.rc2)
Updated grub4dos 2015/03/04
kernel 3.10.71 2015/03/06 (bz3x10.71)
kernel 3.14.35 2015/03/06 (bz3x14.35)
kernel 3.18.9 2015/03/06 (bz3x18.9)
kernel 3.19.1 2015/03/06 (bz3x19.1)
kernel 3.19.1 now default kernel
kernel 4.0-rc3 2015/03/08 (bz4x0.rc3)
Some support file updates

Page 159 of 245


G4Lmenu script that displays startup options for users.

### 12/31/20008 added to allow running command from grub


### add run="command line" to the grub line
### creates /tmp/runcmd to stop running twice.
### added sed CR filtering to allow multi-line commands
### run="command1CRcommand2CRcommand3"
if [ ! -s "/tmp/runcmd" ] ; then
cat /proc/cmdline | grep run | cut -d\" -f 2 | sed -e 's/CR/\n/g' -e
's/\\x20/ /g' >/tmp/runcmd;
if [ -s /tmp/runcmd ] ; then
grub2fix=`cat /tmp/runcmd | cut -b1-3`
if [ "$grub2fix" = "run" ] ; then
cat /tmp/runcmd | cut -b 5-256 > /tmp/runcmd2
mv /tmp/runcmd2 /tmp/runcmd
fi
sh /tmp/runcmd
sleep 10;
fi
fi
dialog --title "Basic Instruction for using G4L " \
--no-cancel --colors --ok-label "Run Option or drop to bash prompt if left
blank"\
--inputbox "Option 1: Enter \Z1g4l\Zn, and use menus to fill in options.\n\
Option 2: Enter \Z1g4l\Zn with parameter options\n\
\Z4 \$1 - IP address of FTP Server\n\
\$2 - IMAGE NAME WITH EXTENSION\n\
\$3 - USERID and PASSWORD either of two formats\n\
USERID:PASSWORD or '-u USERID -p PASSWORD'\n\
\$4 - dhcp (default to get ipaddress from dhcpd) or fixed ipaddress\n\
\$5 - change default directory from img to this\n\
\$6 - eth0 (default or other device)\n\
\$7 - reboot (blank no action, poweroff, reboot)\Zn\n\
parameters must be used in order, but later ones can be left off\n\
Option 3: \Z1fg4l [ftpserverip] [dev] [filename] (default front)\Zn\n\
Option 4: \Z1efg4l [ftpserverip] [dev] [filename] (default front.bic)\Zn\n\
Option 5: \Z1zxg4l [ftpserverip] [dev] [filename] userid:password\Zn\n\
Option 6: \Z1zexg4l [ftpserverip] [dev] [filename] userid:password\Zn\n\
Example: \n\Z1g4l 192.168.0.1 test.lzo userx:passwordx dhcp img\Zn\n" 25 80 \
"" 2>g4lmenu.opt$$
chmod 755 g4lmenu.opt$$
./g4lmenu.opt$$

Page 160 of 245


ifcheck2.sh shell script that checks for nic cards and tries to setup IP.
#!/bin/bash
#
# Quick interface check for G4L
#
# dan.s@hostdime.com
# Fri Jun 6 16:53:01 EDT 2008
#
# Modified Jul 17 2008 to use dialog instead of echo for messages.
got_ip()
{
speed=""
duplex=""
if [ -n "$device" ] ; then
speed=`ethtool $device | grep Speed | cut -f2 -d:`
duplex=`ethtool $device | grep Duplex | cut -f2 -d:`
fi
}

backtitle="Nic Interface checker for G4L by Daniel Selans dan.s@hostdime.com"


IF_COUNT=`ifconfig -a | grep eth | wc -l`
if [ $IF_COUNT -eq 0 ]; then
dialog --backtitle "$backtitle" --sleep 5 --infobox "No ethernet device found! Skipping dhcp..." 5 65
elif [ $IF_COUNT -eq 1 ]; then
FOUND_IF=`ifconfig -a | grep eth | awk {'print $1'}`
ifconfig $FOUND_IF up 2>/dev/null; ## sleep 5
dialog --backtitle "$backtitle" --sleep 5 --infobox "Checking status $FOUND_IF for an active link." 5 65
LINK_CHK=`ethtool $FOUND_IF | grep "Link detected" | awk {'print $3'}`
if [ "$LINK_CHK" = "yes" ]; then
dialog --backtitle "$backtitle" --sleep 5 --infobox "Found $FOUND_IF with active link, running dhcp client..." 5
65
IP_ADDRESS=`udhcpc -n -t 8 -T 5 -i $FOUND_IF -s /udhcpc.sh 2>&1 | grep lease | cut -d\ -f4 | tr -d "\n"`
if [ -z "$IP_ADDRESS" ]; then
# dialog --backtitle "$backtitle" --sleep 5 --infobox "Couldn't acquire IP via DHCP..." 5 65
dialog --backtitle "$backtitle" --sleep 5 --infobox "Couldn't acquire IP via DHCP...\n\nCan use setdhcpd to
set eth0 to 192.168.0.1,\nand start local dhpcd server" 7 65
CURR_INT=eth0
else
device=$FOUND_IF
got_ip
CURR_INT=$FOUND_IF
fi
else
dialog --backtitle "$backtitle" --sleep 5 --infobox "Found $FOUND_IF but no link..." 5 65
CURR_INT=eth0
fi
elif [ $IF_COUNT -gt 1 ]; then
dialog --backtitle "$backtitle" --sleep 5 --infobox "Found multiple interfaces, determining one with an active
link..." 5 65
IF_ARRAY=`ifconfig -a | grep eth | awk {'print $1'}`
FOUND_ACTIVE=0
for CURR_INT in $IF_ARRAY
do
ifconfig $CURR_INT up; ## sleep 5
dialog --backtitle "$backtitle" --sleep 5 --infobox "Checking status $CURR_INT for an active link." 5 65
LINK_CHK=`ethtool $CURR_INT | grep "Link detected" | awk {'print $3'}`

Page 161 of 245


if [ "$LINK_CHK" = "yes" ]; then
FOUND_ACTIVE=1
dialog --backtitle "$backtitle" --sleep 5 --infobox "Found $CURR_INT with active link, running dhcp client..."
5 65
## Added code to check for dhcp address, since link without ip doesn't work.
IP_ADDRESS=`udhcpc -n -t 8 -T 5 -i $CURR_INT -s /udhcpc.sh 2>&1 | grep lease | cut -d\ -f4 | tr -d "\n"`
if [ -z "$IP_ADDRESS" ]; then
# dialog --backtitle "$backtitle" --sleep 5 --infobox "Couldn't acquire IP via DHCP..." 5 65
dialog --backtitle "$backtitle" --sleep 5 --infobox "Couldn't acquire IP via DHCP...\n\nCan use setdhcpd to
set eth0 to 192.168.0.1,\nand start local dhpcd server" 7 65
FOUND_ACTIVE=0
else
device=$CURR_INT
got_ip
break
fi
##
else
FOUND_ACTIVE=0
fi
done
if [ "$FOUND_ACTIVE" -eq "0" ]; then
dialog --backtitle "$backtitle" --sleep 5 --infobox "Did not find any interfaces with an active link..." 5 65
CURR_INT=eth0
elif [ "$FOUND_ACTIVE" -eq "1" ]; then
# Run dhcp client
IP_ADDRESS=`udhcpc -n -t 8 -T 5 -i $CURR_INT -s /udhcpc.sh 2>&1 | grep lease | cut -d\ -f4 | tr -d "\n"`
if [ -z "$IP_ADDRESS" ]; then
# dialog --backtitle "$backtitle" --sleep 5 --infobox "Couldn't acquire IP via DHCP..." 5 65
dialog --backtitle "$backtitle" --sleep 5 --infobox "Couldn't acquire IP via DHCP...\n\nCan use setdhcpd to
set eth0 to 192.168.0.1,\nand start local dhpcd server" 7 65
else
device=$CURR_INT
got_ip
fi
else
dialog --backtitle "$backtitle" --sleep 5 --infobox "Something went wrong during active link check..." 5 65
fi
fi
device=$CURR_INT
got_ip
echo $CURR_INT >/tmp/device
dialog --backtitle "$backtitle" --sleep 5 --infobox "IP ADRESS $IP_ADDRESS ..." 5 65

Page 162 of 245


TESTCD script to setup /dev/cdrom to current device.

cd /dev
rm /dev/cdrom 2>/dev/null
devices=`ls [hs]d?`;
for h in $devices
do
drive=`cat /proc/partitions | grep $h`;
if [ -z "$drive" ]; then
media=`cat /sys/block/$h/device/media`;
if [ "$media" = "cdrom" ]; then
ln -s /dev/$h /dev/cdrom ;
fi
fi
done
devices=`ls sr? 2>/dev/null `;
for h in $devices
do
media=`cat /sys/block/$h/device/model | cut -b 1-3`;
if [ "$media" = "DVD" ]; then
ln -s /dev/$h /dev/cdrom ;
fi
done

Page 163 of 245


udhcpc.sh Shell script used to setup IP address via dhcpd

#!/bin/sh

# udhcpc script edited by Tim Riker <Tim@Rikers.org> and Devin Bayer

[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1

{ # redirect to logger

RESOLV_CONF="/etc/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

case "$1" in
deconfig)
/sbin/ifconfig $interface 0.0.0.0
;;

renew|bound)
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

if [ -n "$router" ] ; then
echo "deleting routers for interface $interface"
while route -n del default gw 0.0.0.0 dev $interface 2> /dev/null; do
true
done

if route -n | egrep "^0.0.0.0"; then


echo "default route already in place"
else
echo "adding default router $router"
route add default gw $router dev $interface
fi
fi

if (! grep -q -v DISABLE_DHCP $RESOLV_CONF) && echo -n > $RESOLV_CONF; then


[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
fi
;;
esac
} 2>&1 | ( logger -s -p daemon.info -t uhdcp || cat )

exit

Page 164 of 245


Getkey.sh script to help user copy key file and passphrase file.

#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
projectname="GetKey"
AESPIPE=""
AESPIPEd=""
#AESPIPE=" aespipe -K /mykey1.gpg -P /passphrase -G / | "
#AESPIPEd="| aespipe -K /mykey1.gpg -P /passphrase -G / -d "

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

createTemp()
{
export tempfile${1}="/tmp/test${1}$$"
}

# local drive
createTemp localdrive
createTemp localname

netdevices=`cat /proc/net/dev |grep eth |cut -d: -f 1`


partitions=`cat /proc/partitions |grep .d |awk '{print $4}'`

### 2008/5/27 New partlist to have size and partitiion type.


partlist="";
fdisk -l 2>/dev/null | grep /dev | grep -v Disk | sed s/*/\ / | awk '{print $1,$6$7$8}' | cut -b6-30
>/tmp/partout
cat /proc/partitions |grep .d | awk '{print $4,$3}' >/tmp/sysinfo2
while read LINE
do
# xxdev=`echo $LINE | cut -b1-4`;
# xxsize=`echo $LINE | cut -b5-30`;
xxdev=`echo $LINE | cut -f1 -d\ `;
xxsize=`echo $LINE | cut -f2 -d\ `;
xxsize2=`echo ${#xxsize}`;
# dev2=`echo $xxdev | cut -b4-4`;
# if [ "$xxdev2" = "" ]; then
pad="";
# else
# pad="_";
# fi
for ((a=xxsize2;a<=12;a++))
do
pad=$pad\_;
done

Page 165 of 245


xxtype="";
xxtype=`cat /tmp/partout | grep $xxdev\ 2>/dev/null | cut -f2 -d\ `;
if [ -z $xxtype ]; then
xxtype="DISK";
fi
partlist="$partlist `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
done </tmp/sysinfo2

### End of addition

for j in $netdevices
do netlist="$netlist `echo $j detected...OK off`"
done

$DIALOG --backtitle "$backtitle" \


--title "PICK DRIVE" \
--radiolist "Choose drive to write to/read from.\n(Use Space Bar)\n\
The drive that contains or will contain the image\
\nSupported FS are:\n\
ext2 - Linux\n\
ext3 - Linux\n\
reiserfs - Linux\n\
fat32 - Windows95/98/NT/2k/XP\n\
ntfs - Windows NT/2k/XP\
\n\nSelect partition (example: /dev/hda1):" 0 0 0 \
$partlist 2> $tempfilelocaldrive

retvallocaldrive=$?

choicelocaldrive=`cat $tempfilelocaldrive`
case $retvallocaldrive in
$DIALOG_OK)

localdrive=$choicelocaldrive
###
umount /mnt/local 2>/dev/null
mount /dev/$localdrive /mnt/local >/tmp/mount 2>&1
retvalmount=$?
if [ $retvalmount != 0 ] ; then
$DIALOG --backtitle "$backtitle" \
--title "ERROR" \
--textbox /tmp/mount 0 0
localdrive=""
umount /mnt/local
## July 25m 2008
## Obsolete with addition of mount.helpers.
## else
## testntfs=`cat /etc/mtab | grep /dev/$localdrive | cut -f 3 -d\ `
## if [ "$testntfs" = "ntfs" ]; then
## umount /mnt/local 2>/dev/null
## ntfs-3g /dev/$localdrive /mnt/local >/tmp/mount 2>&1

Page 166 of 245


## fi
fi
esac
files=`ls -1 -p /mnt/local/*.gpg `
###filelist="`echo Enter Filename on`"
for i in $files
do filelist="$filelist `echo $i file off`"
done

$DIALOG --backtitle "$backtitle" \


--title "BACKUP" \
--radiolist "Choose GPG Key File \
\n Select from following files:" 0 0 0 \
$filelist 2> $tempfilelocalname

retvallocalname=$?
localimagename=`cat $tempfilelocalname`
cp $localimagename /mykey1.gpg
files=""
filelist=""
files=`ls -1 -p /mnt/local/pass* `
###filelist="`echo Enter Filename on`"
for i in $files
do filelist="$filelist `echo $i file off`"
done

$DIALOG --backtitle "$backtitle" \


--title "BACKUP" \
--radiolist "Choose Passphrase File \
\n Select from following files:" 0 0 0 \
$filelist 2> $tempfilelocalname

retvallocalname=$?
localimagename=`cat $tempfilelocalname`
cp $localimagename /passphrase
umount /mnt/local

echo "TESTING KEY and Passphrase"


cd /
dd if=/dev/urandom of=./aes1.test bs=512 count=40
aespipe -K ./mykey1.gpg -P ./passphrase -G ./ <./aes1.test >./aes2.test
aespipe -K ./mykey1.gpg -P ./passphrase -G ./ -d <./aes2.test >./aes3.test
cmp -l ./aes1.test ./aes3.test

echo "cmp should result in no difference"


rm aes?.test -f

Page 167 of 245


G4L30O11 main script linked to g4l
#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
projectname="G4L"
projectlongname="Disk Imaging with Linux"
: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}
# global vars
author="Frank Stephen"
version="v0.53a"
year="2016"
website="http://sourceforge.net/projects/g4l/\nhttp://freecode.com/projects/$projectname"
ncftpopt="-o \"useHELP_SITE=0\""
ncftpstat="/tmp/ncftpstatus.out"
progout="/tmp/progress.out"
AESPIPE=""
AESPIPEd=""
#AESPIPE=" aespipe -K /mykey1.gpg -P /passphrase -G / | "
#AESPIPEd="| aespipe -K /mykey1.gpg -P /passphrase -G / -d "
## changed some default values, and allow passing of values at startup
## Set Tab setting to 2 spaces for best editing
## Date: 6/02/2007
## Optional Startup Parameters
## $1 - IP address or hostname of FTP Server
## $2 - IMAGE NAME WITH EXTENSION
## $3 - USERID and PASSWORD
## either of two formats
## USERID:PASSWORD
## '-u USERID -p PASSWORD'
## $4 - dhcp (default to get ipaddress from dhcpd) or fixed ipaddress
## $5 - change default directory from img to this
## $6 - change default device from eth0
## $7 - if not blank, set reboot to Yes unless $7 is poweroff
export PATH=$PATH:`pwd`
setterm -blank 60
pcnt=0
xreboot="No"
xpower="No"
if [ -n "$7" ]; then
if [ "$7" = "poweroff" ]; then
xpower="Yes"
else
xreboot="Yes"
fi
fi

Page 168 of 245


#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`
if [ -n "$6" ]; then
device=$6
fi
if [ -n "$device" ]; then
device=eth0
fi
netzip=Lzop
localzip=Lzop
server="$1"
netimagename="$2"
useridpass="$3"
ipaddress=`ifconfig $device | grep inet\ | grep -v 127.0.0.1 | cut -f 2 -d: | cut -f 1 -d\ |tr -d "\n"`
#Make sure /mnt/local exists
if [ ! -d /mnt/local ] ; then
mkdir /mnt ;
mkdir /mnt/local ;
dialog --timeout 10 --msgbox "Needs /mnt/local directory\n(10 second timeout)" 0 0
fi

cleandrive8.dialog()
{
f_radiolist "PICK DRIVE" "Choose drive to write to/read from.\n(Use Space Bar)\
\nThe drive that contains or will contain the image\
\nSupported FS are:\
\next2. ext3, ext4, reiserfs - Linux\
\nfat32 - Windows95/98/NT/2k/XP\
\nntfs - Windows NT/2k/XP\
\n\nSelect partition (example: /dev/hda1):" "$partonly" 2> /tmp/filelocaldrive
retvallocaldrive=$?
choicelocaldrive=$(cat /tmp/filelocaldrive)
if [ -n "$choicelocaldrive" ]; then
case $retvallocaldrive in
$DIALOG_OK)
localdrive=$choicelocaldrive
###
umount /mnt/local 2>/dev/null
chkswap=`blkid /dev/$localdrive | grep swap`
mount /dev/$localdrive /mnt/local >/tmp/mount 2>&1
retvalmount=$?
if [ $retvalmount != 0 ] ; then
if [ -z chkswap ]; then
f_textbox "ERROR" /tmp/mount
fi
umount /mnt/local 2>/dev/null
if [ -n chkswap ]; then
echo "Clearing SWAP partition"
BLKID2=`blkid /dev/$localdrive | cut -f 2 -d\:`
LABEL=""

Page 169 of 245


UUID=""
for a in $BLKID2
do
export $a
done
LABEL=`echo $LABEL | tr -d \"`
UUID=`echo $UUID | tr -d \"`
dd if=/dev/zero bs=20M of=/dev/$localdrive
mkswap /dev/$localdrive -U $UUID -L "$LABEL"
echo "Done"
sleep 10
fi
localdrive=""
umount /mnt/local 2>/dev/null
else
cd /mnt/local
chkvfat=`blkid /dev/$localdrive | grep vfat`
if [ -z "$chkvfat" ]; then
{
msg="Clearing Free Space on /dev/$localdrive"
value="100"
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`
original=`df . | grep % | grep / | awk '{print $4}'`
testx=`df . | grep % | grep / | cut -b1-1`
if [ " " = "$testx" ]; then
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`
original=`df . | grep % | grep / | awk '{print $4}'`
else
freesize=`df . | grep % | grep / | awk '{print $2 - $3}'`
original=`df . | grep % | grep / | awk '{print $5}'`
fi
printf "%s\n" "$freesize $original"

dd if=/dev/zero bs=2M 2>/dev/null | jetcat-mod -f 5000 -p $freesize 2>/tmp/progress.out >0bits


&
progress
cat /tmp/progress.out
# value=$original
# msg="Removing 0bits file"
# $DIALOG --sleep 10 --infobox "PAUSE FOR 10 SECONDS" 5 25
$DIALOG --sleep 10 --infobox "REMOVING 0bits FILE" 5 25
rm 0bits #&
# progress
}
else
lblank7
fi

$DIALOG --sleep 10 --infobox "Drive Should now have all free space cleared" 5 50
fi;;
esac
cd /

Page 170 of 245


umount /mnt/local 2>/dev/null
fi
}
#uuid change functions
uuidChange() # start of masavini modification
{
part_info
f_radiolist "SELECT DISK" "Choose Disk to Change UUID drive.\n\Z1\Zr\Zb(Use Space Bar)\Zn\n\
Select from:" "$disklist" 2> /tmp/uuidtarget
retvaluuidtarget=$?
choiceuuidtarget=$(cat /tmp/uuidtarget)
case $retvaluuidtarget in
$DIALOG_OK)
uuidtarget=/dev/$choiceuuidtarget
f_partdiskinfo "$uuidtarget" "UUID TARGET DISK INFO"
partitions=$(fdisk -l $uuidtarget | grep "^$uuidtarget" | awk '{print $1}')
for partition in $partitions;
do
oldUUID=$(blkid | grep "^$partition" | sed -e "s/.*UUID=\"//" -e "s/\".*//")
newUUID=$oldUUID

while [ $newUUID = $oldUUID ];


do
filesystem=$(blkid $partition | sed -e "s/.*TYPE=\"//" -e "s/\".*//")
case $filesystem in
ext2|ext3|ext4)
tune2fs -U $(uuidgen) $partition > /dev/null
newUUID=$(blkid | grep "^$partition" | sed -e "s/.*UUID=\"//" -e "s/\".*//")
;;
swap)
mkswap -U $(uuidgen) $partition > /dev/null
newUUID=$(blkid | grep "^$partition" | sed -e "s/.*UUID=\"//" -e "s/\".*//")
;;
*)
echo "bubu"
newUUID="bubu" # will surely exit the while loop
;;
esac
done
done
esac
} # end of masavini modification

## Function to remove hiberfil.sys and pagefile.sys


## From Windows partitions before ntfsclone backup.
hibpage()
{
backtitle="Program to Remove Pagefile.sys and Hiberfil.sys"
f_radiolist "PICK DRIVE" "Pick Partition to erase PAGE/HIBERNATION FILE\n(Use Space Bar)\
\nSupported FS are:\
\nfat32 - Windows95/98/NT/2k/XP\
\nntfs - Windows NT/2k/XP\

Page 171 of 245


\n\nSelect partition (example: /dev/hda1):" "$partonly" 2> /tmp/filelocaldrive
retvallocaldrive=$?
choicelocaldrive=$(cat /tmp/filelocaldrive)
if [ -n "$choicelocaldrive" ]; then
case $retvallocaldrive in
$DIALOG_OK)
localdrive=$choicelocaldrive
umount /mnt/local 2>/dev/null
mount /dev/$localdrive /mnt/local >/tmp/mount 2>&1
retvalmount=$?
if [ $retvalmount != 0 ] ; then
f_textbox "ERROR" /tmp/mount
localdrive=""
umount /mnt/local
fi;;
esac
cd /mnt/local
clear
resultout=""
if [ -e hiberfil.sys ] ; then
result="Found Hiberfil.sys and removed\n"
rm hiberfil.sys
else
result="No Hiberfil.sys found\n"
fi
if [ -e pagefile.sys ] ; then
result=$result"Found Pagefile.sys and removed"
rm pagefile.sys
else
result=$result"No Pagefile.sys found"

fi
$DIALOG --sleep 10 --infobox "$result" 5 50
cd /
umount /mnt/local
fi
}

#function to display disk information to make sure correct disk


# or partition is selected.
f_partdiskinfo()
{
echo "Additional hdparm info on disk to confirm it as source" >/tmp/diskinfo
if [ "$1" != "/dev/" ] ; then
hdparm -i $1 >>/tmp/diskinfo
printf "\nblkid info:\n" >> /tmp/diskinfo
blkid $1* >> /tmp/diskinfo
sed -e 's/ //g' /tmp/diskinfo | fold -w 72 -s >/tmp/diskinfo2
f_textbox "$2" /tmp/diskinfo2
else

Page 172 of 245


dialog --timeout 10 --msgbox "No Selection Made?\nUse SPACEBAR to Select\n(10 second
timeout)" 0 0
fi
}

f_userpass()
{
## Added to support user:password format conversion to ncftp format
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi
}
f_userpass
## automatically change default if filename if ext is .lzo
## ext=`echo $2 | cut -d. -f2`
ext=`echo ${2##*.}`
if [ "$ext" = "lzo" ]; then
netzip="Lzop"
fi
## automatically change default if filename if ext is .bz
if [ "$ext" = "bz" ]; then
netzip="BZip2"
fi
if [ "$ext" = "gz" ]; then
netzip="GZip"
fi
if [ "$4" = "dhcp" ]; then
## 06/23/2007 new busybox changed ip from field 4 to field 3
ipaddress=`udhcpc -n -i $device -s./udhcpc.sh 2>&1 | grep lease | cut -d\ -f4 | tr -d "\n"`
/sbin/ifconfig $device $ipaddress up
## 11/25/2012 added to let $4 set fixed ip
else
if [ -n "$4" ]; then
/sbin/ifconfig $device $4 up
ipaddress="$4"
fi
fi
## Created a function for the Progress Screen instead of multiple
## copies using multiply files. Just setup 1 function with a msg variable
## to set the minor differences between earlier versions.
progress()
{
## Added a redirection of stderr from ncftp commands.
## Would get an error message rarely about a register 82 problem with duplex
## mismatch. This error would message the contents of the screen, but the updates
## of the progress would go on. Redirects output to file, and then displays last
## two lines of the file.
## This just sets the starting value as being OK
echo "OK" >$ncftpstat
echo "0.00% Starting" > $progout

Page 173 of 245


## Added the Start time of the process to the progress screen
## Removed - Replaced with modification to jetcat-mod to
## Display MBs of data transferred of total, and Elapsed time.
## starttime=`date +%T`
(
while test "$pcnt" != "100"
do
## changed to a common progress.out file for all progress
pcnt=`tail -n1 $progout`
echo "XXX"
## Modified Jetcat-mod to display two decimal positions
## have to cut off the decimals for the gauge to work.
echo $pcnt | cut -d. -f 1
printf "\n"
## msg variable set before calling the progress function to
## make minor variation between different screens.
printf "%s\n" "$msg"
printf "%s\n" "The progress bar shows the ratio of written source data"
printf "%s\n" "and size of destination (harddrive/image). It will not be"
printf "%s\n\n" "accurate if you restore 50G to a 100G drive for example."
printf "%s\n\n" "Please stand by, this will take some time!"
printf "%s\n\n" "Device $device Speed $speed Duplex $duplex"
## Percentage displays with 2 decimal places, plus start time and current time.
## This lets one check time status of process in addition to percentage
printf "%s\n" "Progress"
printf "%s\n" "$pcnt"
## Removed Current time and Start time for modified jetcat-mod
##echo "Current Time: `date +%T`"
##echo "Start Time: $starttime"
## add display of last four lines of ncftp stderr if any.
echo -n "ncftpstatus: "
ncftpstatus=`tail -n4 $ncftpstat`
printf "%s\n" "$ncftpstatus"
printf "%s\n" "XXX"
sleep 5
done
)|
$DIALOG --backtitle "$backtitle" --title "Working..." --clear --gauge "One moment..." 22 75
## Outputs start time and current time, so it can be checked if one isn't around at end
## of process. Also, note one can use Ctrl-Alt F2 to switch to another screen to review
## the file contents or use the special command option.
# printf "%s\n\n" "Last 5 lines of time log" >/tmp/time
# tail -n5 $progout >>/tmp/time
printf "\n\n%s\n\n" "Last 5 lines of time log with no tabs" >/tmp/time
tail -n5 $progout | sed -e 's/\t/ /g' -e 's/% /%/' >>/tmp/time
## removed date process since jetcat-mod does a better job
## echo "$starttime `date +%T`">/tmp/time
rm $progout
touch $progout
## Added a pause to let the user see final results before it returns.
}
# path to images on ftp server

Page 174 of 245


ftppath=img
if [ -n "$5" ]; then
ftppath=$5
fi
# window title
backtitle="$projectname $version, $author $year modifications by Michael D. Setzer II"
part_info()
{
# parse info about devices to tempfiles
## original netdevices=`cat /proc/net/dev |grep eth |sed -e 's/://g' |awk '{print $1}'`
## Change1 netdevices=`cat /proc/net/dev |grep eth |sed -e 's/:/ /g' |awk '{print $1}'`
## Changed to terminate at the colon since after some options, a number was getting added
## to the eth0:
netdevices=`grep eth </proc/net/dev |cut -d: -f 1`
partitions=`grep -e hd -e sd -e dm -e nvme </proc/partitions |awk '{print $4}'`
# write systeminfo file
printf "========================================\n" > /tmp/sysinfo
printf "Drive/Partition sizes:\n" >> /tmp/sysinfo
grep -e hd -e sd -e dm -e nvme </proc/partitions | awk '{print $4,$3}' |sort >>/tmp/sysinfo

printf "\nDrive models:\n" >> /tmp/sysinfo


for h in $partitions
do
length=`echo $h |wc -c`
if [ $length -lt 5 ]; then
echo $h >> /tmp/sysinfo
cat /proc/ide/$h/model >> /tmp/sysinfo 2>/dev/null
fi
done
### 2008/5/27 New partlist to have size and partition type.
partlist="";
partonly="";
### 2009/3/15 New disklist to have just disks without partitions
disklist="";
fdisk -l 2>/dev/null | grep /dev | grep -v Disk | sed s/*/\ / | awk '{print $1,$6$7$8}' | cut -b6-30
>/tmp/partout
grep -e hd -e sd -e dm -e nvme </proc/partitions | awk '{print $4,$3}' >/tmp/sysinfo2
while read LINE
do
xxdev=`echo $LINE | cut -f1 -d\ `;
xxsize=`echo $LINE | cut -f2 -d\ `;
xxsize2=`echo ${#xxsize}`;
pad="";
a=$xxsize2;
while [ $a -le 12 ]
# for (a=xxsize2;a<=12;a++) Doesn't work on new bash?
do
pad=$pad\_;
a=$(($a + 1));
done
xxtype="";
xxtype=`grep $xxdev\ </tmp/partout 2>/dev/null | cut -f2 -d\ `;

Page 175 of 245


if [ -z $xxtype ]; then
xxtype="DISK";
### 2009/3/15 New disklist to have just disks without partitions
disklist="$disklist `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
fi
partlist="$partlist `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
if [ "$xxtype" != "DISK" ] ; then
partonly="$partonly `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
fi
done </tmp/sysinfo2
printf "\nblkid info:\n" >> /tmp/sysinfo
blkid >> /tmp/sysinfo
printf "\nfsarchiver probe info:\n\n" >> /tmp/sysinfo
fsarchiver probe -v 2>> /tmp/sysinfo
cat /tmp/sysinfo | sed -e 's/\] \[/\|/g' >/tmp/sysinfo3
mv /tmp/sysinfo3 /tmp/sysinfo
### End of addition
FSARCH=`which fsarchiver `
if [ $? = "0" ] ; then
### Added since part_info2 doesn't seem to support /dev/cciss partitions.
# testcciss=`echo $disklist | grep "/dev/cciss"`
# if [ -z "$testcciss" ] ; then
part_info2
# fi
fi
}
part_info2()
{
partonly="";
partlist="";
disklist="";
#LC_ALL=C added since regular sort was sorting sda after sda# options.
#busybox sort works correctly, but if one uses script on anther version
#it might sort incorrectly. dm stuff added to put lvm partition at end.
## Added -e 's-!-/-g' to change cciss!c0d0p0 to cciss/c0d0p0 and others.
fsarchiver probe -v 2>&1 | grep -v ram0 | grep -v = | grep \\[ | sed 's/dm/zz/g' | LC_ALL=C sort | sed
-e 's/ /@/g' -e 's/zz/dm/g' -e 's-!-/-g' >/tmp/sysinfo2
while read LINE
do
xxdev=`echo $LINE | cut -b2-17 | sed 's/@//g' `;
xxdev2=`echo $LINE | cut -b2-3`;
xxsize=`echo $LINE | cut -b55-66 | sed 's/@//g'`;
xxtype=`echo $LINE | cut -b21-31 `;
xxtype2=`echo $LINE | cut -b32-32 `;
xxuuid=`echo $LINE | cut -b121-158 `;
if [ "$xxtype2" != "]" ] ; then
xxtype=`echo $LINE | cut -b21-51 `;
xxuuid=`hdparm -i /dev/$xxdev 2>/dev/null | grep SerialNo | sed -e 's/.*SerialNo=//' -e 's/ //g' `
fi
pad="";
a=`echo ${#xxsize}`;
while [ $a -le 10 ]

Page 176 of 245


do
pad=$pad\_;
a=$(($a + 1));
done
if [ "$xxdev2" = "dm" ]; then
xxtype="LVM2_"$xxtype;
fi
if [ "$xxtype2" != "]" ]; then
disklist="$disklist `printf "%s %s%s--%s-%s off" $xxdev $pad $xxsize $xxtype $xxuuid`";
fi
partlist="$partlist `printf "%s %s%s--%s-%s off" $xxdev $pad $xxsize $xxtype $xxuuid`";
if [ "$xxtype2" = "]" ] ; then
partonly="$partonly `printf "%s %s%s--%s-%s off" $xxdev $pad $xxsize $xxtype $xxuuid`";
fi
done </tmp/sysinfo2
partonly=`echo $partonly | sed 's/@//g'`
partlist=`echo $partlist | sed 's/@//g'`
disklist=`echo $disklist | sed 's/@//g'`
if [ -z "$partonly" ] ; then
partonly="none no_partitions off";
fi
if [ -z "$partlist" ] ; then
partlist="none no_partitions off";
fi
if [ -z "$disklist" ] ; then
disklist="none no_disks off";
fi
}

#Function to Update Partition info.


part_info
for j in $netdevices
do
netlist="$netlist `echo $j detected...OK off`"
done
f_textbox()
{
$DIALOG --clear --backtitle "$backtitle" --title "$1" --textbox $2 0 0
}
f_msgbox()
{
$DIALOG --backtitle "$backtitle" --colors --title "$1" --clear --msgbox "$2" 0 0
}
f_compress()
{
$DIALOG --backtitle "$backtitle" --title "COMPRESSION" --colors \
--radiolist "Choose whether to use compression or not.\n\Z1\Zr\Zb(Use Space Bar)\Zn\
\nBe careful, compression requires more CPU power!" 0 0 0 \
"None" "No compression." off \

Page 177 of 245


"GZip" "GZip compression." off \
"Lzop" "Lzop compression." ON \
"BZip2" "BZip2 compression." off
}
f_mbr()
{
# "M: MBR")
if [ "$1" = "NET" ] ; then
mbrimagename=$netimagename
else
mbrimagename=$localimagename
fi
$DIALOG --colors --pause "\Z1Note: \Z4The MBRBACK and MBRRESTORE only copy \
\nthe 512 byte boot sector and the Physical Partition Table.\
\nIt doesn't include the logical Partitions.\
\nThose are stored in EBR.\
\nThe MBRBACK2 and MBRRESTORE2 attempt to copy the EBRs as well,\
\nBUT it assumes standard track aligned partitions, and my not work\
\nIf you have Logical Partitions, Please do a Disk Backup." 15 70 10
$DIALOG --colors --radiolist "MBR BACKUP OR RESTORE\n\nThis copies the mbr and\
\nphysical partition table\
\n\Z1\Zr\ZbUse Space Bar to select Option\Zn" 0 0 0 \
"MBRBACK" "Backup the MBR" off \
"MBRRESTORE" "Restore the MBR" off \
"MBRBACK2" "Backup the MBR and EBRs" off \
"MBRRESTORE2" "Restore the MBR and EBRs" off \
"GPTBACK" "Backup the GPT " off \
"GPTRESTORE" "Restore the GPT" off 2> /tmp/mbr
specialcommand=$(cat /tmp/mbr)
if [ "$specialcommand" = "MBRBACK" ] ; then
f_radiolist "BACKUP" "Choose Disk ONLY to backup MBR\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect
from:" "$disklist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
if [ "$1" = "NET" ] ; then
xcmd="(dd bs=512 count=1 if=$disk 2>/dev/null | ncftpput $ncftpopt -m $useridpass -c -d
/tmp/out $server "$ftppath/$mbrimagename" 2>>$ncftpstat) "
else
xcmd="(dd bs=512 count=1 if=$disk of=/mnt/local/$mbrimagename 2>/dev/null )"
fi
sh -c "$xcmd"
esac
fi
## GPTBACK
if [ "$specialcommand" = "GPTBACK" ] ; then
f_radiolist "BACKUP" "Choose Disk ONLY to backup GPT\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect
from:" "$disklist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)

Page 178 of 245


case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
if [ "$1" = "NET" ] ; then
sgdisk -b $mbrimagename $disk
ncftpput $ncftpopt -m $useridpass -d /tmp/out $server "$ftppath" $mbrimagename 2>>$ncftpstat
else
sgdisk -b /mnt/local/$mbrimagename $disk 2>/dev/null
fi
esac
fi
## GPTBACK
if [ "$specialcommand" = "MBRBACK2" ] ; then
f_radiolist "BACKUP" "Choose Disk ONLY to backup MBR\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect
from:" "$disklist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)

case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
sectors=`fdisk -lu $disk | grep sectors/track | cut -f 3 -d\ `
## Added code to copy mbr and all space before first partition.
disk1="$disk"1
mbrsectors=`fdisk -lu $disk | grep $disk1 | cut -b14-25 | sed 's/ //g' `
X=`echo "$mbrsectors" | awk '$0 ~/[^0-9]/ { print "NOT_NUMBER" }'`
if [ "$mbrsectors" != "" ] && [ "$X" != "NOT_NUMBER" ]; then
echo "$mbrsectors"
else
mbrsectors=$sectors
fi
## Added code to copy mbr and all space before first partition.
part5=`fdisk -lu $disk | grep "$choicenetback"5 | cut -b 14-25 `
part6=`fdisk -lu $disk | grep "$choicenetback"6 | cut -b 14-25 `
part7=`fdisk -lu $disk | grep "$choicenetback"7 | cut -b 14-25 `
part8=`fdisk -lu $disk | grep "$choicenetback"8 | cut -b 14-25 `
fdisk -lu $disk >disk.info
echo \#Restore mbr >rest.mbr
sfdisk -x -d $disk >sfdisk.sav
echo "sfdisk -f $disk <sfdisk.sav" >>rest.mbr
## Added code to copy mbr and all space before first partition.
## dd if=$disk of=mbr bs=512 count=$sectors
dd if=$disk of=mbr bs=512 count=$mbrsectors
## Added code to copy mbr and all space before first partition.
echo dd of=$disk if=mbr bs=512 >>rest.mbr
if [ -n "$part5" ] ; then
ebr5=`expr $part5 - $sectors`
echo $part5 $ebr5
dd if=$disk of=ebr5 bs=512 skip=$ebr5 count=$sectors
echo dd of=$disk if=ebr5 bs=512 seek=$ebr5 >>rest.mbr
fi
if [ -n "$part6" ] ; then

Page 179 of 245


ebr6=`expr $part6 - $sectors`
echo $part6 $ebr6
dd if=$disk of=ebr6 bs=512 skip=$ebr6 count=$sectors
echo dd of=$disk if=ebr6 bs=512 seek=$ebr6 >>rest.mbr
fi
if [ -n "$part7" ] ; then
ebr7=`expr $part7 - $sectors`
echo $part7 $ebr7
dd if=$disk of=ebr7 bs=512 skip=$ebr7 count=$sectors
echo dd of=$disk if=ebr7 bs=512 seek=$ebr7 >>rest.mbr
fi
if [ -n "$part8" ] ; then
ebr8=`expr $part8 - $sectors`
echo $part8 $ebr8
dd if=$disk of=ebr8 bs=512 skip=$ebr8 count=$sectors
echo dd of=$disk if=ebr8 bs=512 seek=$ebr8 >>rest.mbr
fi
echo "hdparm -z $disk" >>rest.mbr
mbrimagename2=`echo $mbrimagename | sed -e 's/.tar//g' -e 's/.gz//g'`;
echo $mbrimagename2
sleep 10
tar -cvf $mbrimagename2.tar rest.mbr ?br* disk.info sfdisk.sav
if [ -f $mbrimagename2.tar.gz ] ; then
rm $mbrimagename2.tar.gz
fi
gzip $mbrimagename2.tar
if [ "$1" = "NET" ] ; then
xcmd="(cat $mbrimagename2.tar.gz | ncftpput $ncftpopt -m $useridpass -c -d /tmp/out $server
"$ftppath/$mbrimagename2".tar.gz 2>>$ncftpstat) "
else
xcmd="(cp $mbrimagename2.tar.gz /mnt/local/ ) "
fi
sh -c "$xcmd"
sleep 10
esac
fi
if [ "$specialcommand" = "MBRRESTORE" ] ; then
f_radiolist "RESTORE" "Choose Disk ONLY to restore MBR\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect
from:" "$disklist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
if [ "$1" = "NET" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/$mbrimagename"
2>>$ncftpstat | dd bs=512 count=1 of=$disk 2>/dev/null) "
else
xcmd="(dd if=/mnt/local/$mbrimagename bs=512 count=1 of=$disk 2>/dev/null) "
fi
sh -c "$xcmd"
sleep 2

Page 180 of 245


hdparm -z $disk
sleep 2
part_info
esac
fi
#GPTRESTORE
if [ "$specialcommand" = "GPTRESTORE" ] ; then
f_radiolist "RESTORE" "Choose Disk ONLY to restore MBR\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect
from:" "$disklist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
if [ "$1" = "NET" ] ; then
ncftpget $ncftpopt $useridpass -V -d /tmp/out $server "$ftppath/$mbrimagename" . 2>>$ncftpstat
sgdisk -l $mbrimagename $disk
else
sgdisk -l /mnt/local/$mbrimagename $disk
fi
part_info
esac
fi
#GPTRESTORE
if [ "$specialcommand" = "MBRRESTORE2" ] ; then
$DIALOG --backtitle "$backtitle" \
--title "RESTORE2" \
--defaultno \
--yesno "This is a critical operation to the disk\
\nit will overwrite the MBR and EBRs to the original\
\ndisk device that was used to create backup of the MBR.\
\nBe 100% sure before selecting YES or you will wipe out the disk\
\nIf in doubt do a Disk Image of the device.\
\nSelect Carefully:" 0 0
retvalnetback=$?
case $retvalnetback in
$DIALOG_OK)
if [ "$1" = "NET" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -V -d /tmp/out $server . "$ftppath/$mbrimagename"
2>>$ncftpstat ) "
sh -c "$xcmd"
gunzip $mbrimagename
tar -xvf `echo $mbrimagename | sed 's/.gz//g' `;
else
gunzip /mnt/local/$mbrimagename
tar -xvf `echo $mbrimagename | sed 's/.gz//g' `;
fi
$DIALOG --backtitle "$backtitle" \
--pause "MBRRESTORE2 uses a script created by MBRBACK2\
\nThe script copies the tracks with the MBR and EBRs\
\nThe script contains the original device\
\nThe script will be opened with nano\

Page 181 of 245


\nand you can change it if necessary\
\nin both rest.mbr and sfdisk.sav files\
\nOr reboot if not 100% sure\
\nOtherwise use Ctrl-X to save and run script" 15 60 20
nano rest.mbr
nano sfdisk.sav
chmod 755 rest.mbr
sh rest.mbr
sleep 10
part_info
esac
fi
}
f_yesno()
{
$DIALOG --backtitle "$backtitle" --title "$1" --clear --yesno "$2" 0 0
}
f_inputbox()
{
$DIALOG --colors --backtitle "$backtitle" --title "$1" --clear --inputbox "$2" 0 0
}
f_radiolist()
{
$DIALOG --backtitle "$backtitle" --colors --title "$1" --radiolist "$2" 0 0 0 $3
}
getsize()
{
grep $1 </proc/partitions | head -n 1 |awk '{print $3}'
}
f_rebootpoweroff()
{
$DIALOG --backtitle "$backtitle" \
--title "BACKUP" --timeout 10 \
--menu "Choose Reboot or Poweroff\nand Press Enter\
\n10 second timeout defaults to Reboot:" 0 0 0 \
"Reboot" "Reboot machine now" \
"Poweroff" "Power down machine now" 2> rebootpoweroff
retvalreboot=$?
rebootval=`cat rebootpoweroff`
if [ "$retvalreboot" = "255" ] ; then
rebootval="Reboot"
fi
if [ "$retvalreboot" != "1" ] ; then
case $rebootval in
"Reboot") reboot;;
"Poweroff") poweroff;;
esac
fi
}

f_chk_value_local()
{

Page 182 of 245


if [ "$localdrive" = "" ] ; then
f_msgbox "ERROR" "No Mount Point Setup!\nUse Option A\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
if [ "$localimagename" = "" ] ; then
f_msgbox "WARNING" "No filename for image set, using default\nFilename: image.img.gz"
localimagename=image.img.gz
fi
if [ "$localsplit" = "" ] ; then
f_msgbox "WARNING" "Splitting not defined, using default\nSplitting: Off"
localsplit=Off
fi
if [ "$localzip" = "" ] ; then
f_msgbox "WARNING" "Compression not defined, using default\nCompression: None"
localzip=None
fi
}
f_chk_value_net()
{
if [ "$ipaddress" = "" ] ; then
f_msgbox "ERROR" "No Network IP Address for $device set!\n->Back to Main Menu."
continue
fi
if [ "$server" = "" ] ; then
f_msgbox "ERROR" "No FTP IP Address set!\n->Back to Main Menu."
continue
fi
if [ "$netimagename" = "" ] ; then
f_msgbox "WARNING" "No filename for image set, using default\nFilename: image.img.gz"
netimagename=image.img.gz
fi
if [ "$netzip" = "" ] ; then
f_msgbox "WARNING" "Compression not defined, using default\nCompression: None"
netzip=None
fi
}
createTemp()
{
export tempfile${1}="/tmp/test${1}$$"
}
#
# create tempfiles for menu structure
# (Add localmount)
for a in main rawmenu netmenu device ip ftp netname netzip netback netrest localmenu localpath
localdrive localname localsplit localzip localback localrest clonemenu clonesource clonetarget
filemenu fileip filedevice filepart utilmenu hdparm utilzero ddres ddressource ddrestarget ddoptadd
udpoption localmount ntpserver dmesg
do
createTemp $a
done
## 11/25/2010 Added localpath

Page 183 of 245


localpath="/"
## 11/25/2010
#restart function
restartcheck()
{
if [ "$xreboot" = "Yes" ] ; then
$DIALOG --sleep 10 --infobox "Rebooting" 0 0
reboot
fi
if [ "$xpower" = "Yes" ] ; then
$DIALOG --sleep 10 --infobox "Powering Off" 0 0
poweroff
fi
}
# function to toggle reboot
f_toggle_reboot()
{
if [ "$xreboot" = "Yes" ] ; then
xreboot="No"
else
xpower="No"
xreboot="Yes"
fi
}
# function to toggle poweroff
f_toggle_poweroff()
{
if [ "$xpower" = "Yes" ] ; then
xpower="No"
else
xreboot="No"
xpower="Yes"
fi
}
# function to toggle disklist to disklist or partionlist
f_toggle_disklist()
{
if [ "$disklist" = "$partlist" ]; then
part_info
else
disklist=$partlist
fi
}
# function to verify source and target
f_verify_source_target()
{
if [ "$1" != "" -a "$2" != "" -a "$1" = "$2" ]; then
f_msgbox "WARNING" "Target and source are identical"
fi
}
#function for Special Options
f_specialopt()

Page 184 of 245


{
## added the ability to run other commands within the script
## This includes all the functions that are included in the busybox
## system. There were a number of symbolic links on the original $projectname
## that actually where not included in the build of busybox.
## I rebuilt the busybox to include all the commands that had symbolic
## links that I could find in busybox. Running busybox will show the
## list of commands. The only ones that I could not find in the current
## busybox were dutmp, loadacm and update. Many of the commands probable
## are not needed, but since the links where already included I built them
## into the busybox.
## There are also a number of other programs in addition to the busybox collection
## bc, bzip2, jetcat-mod, ncftpget, ncftpls, ncftpput, partimage, partimaged
## split, tr, wc, brep, bash, cat, dialog, busybox, hdparm, dd_rescue, dd_rhelp, parted
## some of these are used in other options of the $projectname.
## Change dd_rescue and dd_rhelp to ddrescue
# "S: Special Commands")
f_inputbox "Run Special Commands" \
"Enter Commands to run. \
\nExample: route, ping -c 10 ipaddress, ifconfig \
\n busybox for list of supported commands \
\nethtool - to set parameters if autoneg doesn't work\
\nFour Special Options All Case Sensitive that some might find useful\
\n\Z4Buffy\Zn does directory of ftpserver\
\n\Z4Reboot\Zn toggles reboot ($xreboot) after backup/restore\
\n\Z4Poweroff\Zn toggles a poweroff ($xpower) after backup/restore\
\n\Z4Xena\Zn does special route gateway\
\n\Z4blkid\Zn Display blkid partition info\
\n\Z4part_info\Zn Update partition info after changing usb device\
\n my college network is setup with 4 logical Class C\
\n networks, but 1 physical network. This command sets\
\n a direct route rather than going thru the 10M router\
\n not pretty, but it makes it work at 100M instead of 10\
\n\nEnter Command with parameters (10 second pause):" 2> $tempfileip
retvalip=$?
case $retvalip in
$DIALOG_OK)
specialcommand=$(cat $tempfileip)
if [ "$specialcommand" = "Xena" ] ; then
specialcommand="route add $server gw $ipaddress"
fi
if [ "$specialcommand" = "Buffy" ] ; then
specialcommand="ncftpls $useridpass ftp://$server/$ftppath/"
fi
if [ "$specialcommand" = "Reboot" ] ; then
f_toggle_reboot
specialcommand="echo xreboot set to $xreboot"
fi
if [ "$specialcommand" = "Poweroff" ] ; then
f_toggle_poweroff
specialcommand="echo xpower set to $xpower"
fi

Page 185 of 245


if [ "$specialcommand" = "part_info" ] ; then
part_info
specialcommand="echo Partition info updated"
fi
## Some commands don't produce output
## So I have it display the command being run
## Before and After, so you can see
## Exactly what you entered
echo Begin: $specialcommand
$specialcommand
echo Done: $specialcommand
echo "10 Second Pause"
sleep 10;;
esac
}
#changed main menus to functions
#draw: d_
d_agreemenu()
{
$DIALOG --backtitle "$backtitle" \
--title "INFORMATION" --clear \
--yesno "$projectname - $projectlongname \
\n$author $year \
\n\n$projectname comes with ABSOLUTELY NO WARRANTY ! \
\n This is free Software, and you are welcome \
\n to redistribute it freely. Read the online Help \
\n for more info on this delicate topic. \
\n\n USE AT OWN RISK! \
\n\n Please use sourceforge and freecode sites \
\n to present any issues. Generally checked daily \
\n\n http://sourceforge.net/projects/g4l/ \
\n http://freecode.com/projects/g4l \
\n\n Accept these conditions? \
\n YES to proceed, NO to quit. " 22 60
}
d_mainmenu()
{
$DIALOG --backtitle "$backtitle" \
--title "MAIN MENU" \
--menu "Choose your desired mode:" 0 0 0 \
"RAW Mode" "ANY filesystem, every bit, local+ftp+cifs(smb)+sshfs+nfs" \
"File Mode" "Some filesystems only, only files, local+special server" \
"Utilities" "System info and tools" \
"ClearHP" "Clear Hiberfil.sys and Pagefile.sys before NTFSCLONE" \
"Show Help" "Show IMPORTANT help" 2> $tempfilemain
}
d_rawmenu()
{
$DIALOG --backtitle "$backtitle" \
--title "RAW MODE" \
--menu "Choose one of the following options:\n\n" 0 0 0 \
"Network use" "Backup/Restore to/from network (FTP, UDPCAST)" \

Page 186 of 245


"Local use" "Backup/Restore to/from local drive + (CIFS, SSHFS, NFS)" \
"Click'n'Clone" "Directly clone a drive" 2> $tempfilerawmenu
}
d_localmount()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "LOCAL MOUNT" \
--menu "Choose one of the following options:\n\n" 0 78 5 \
"A: Pick Local Mount" "Local Partition for/with IMAGE file ($localdrive)" \
"B: cifs" "Mount remote directory via cifs (Windows Share)" \
"C: sshfs" "Mount remote directory via sshfs" \
"D: nfs" "Mount remote directory via nfs" 2> $tempfilelocalmount
retvallocalmount=$?
choicelocalmount=$(cat $tempfilelocalmount)
case $choicelocalmount in
"A: Pick Local Mount")
# Added to update for USB devices plugged in.
# Suggested by Rhoann Solangon, Justin Connor and Rogelio Sabangan Jr.
part_info
f_radiolist "PICK DRIVE" "Choose drive to write to/read from.\n\Z1\Zr\Zb(Use Space Bar)\Zn\
\nThe drive that contains or will contain the image\
\nSupported FS are:\
\next2. ext3, ext4, reiserfs - Linux\
\nfat32 - Windows95/98/NT/2k/XP\
\nntfs - Windows NT/2k/XP\
\n\nSelect partition (example: /dev/hda1):" "$partonly" 2> $tempfilelocaldrive
retvallocaldrive=$?
choicelocaldrive=$(cat $tempfilelocaldrive)
case $retvallocaldrive in
$DIALOG_OK)
localdrive=$choicelocaldrive
umount /mnt/local 2>/dev/null
mount /dev/$localdrive /mnt/local >/tmp/mount 2>&1
retvalmount=$?
if [ $retvalmount != 0 ] ; then
f_textbox "ERROR" /tmp/mount
localdrive=""
umount /mnt/local
fi;;
esac;;
### sshfs Addition
"C: sshfs")
# Set localdrive value
localdrive="sshfs"
# Make sure /mnt/local is not mounted
umount /mnt/local
f_inputbox "Mount Remote directory via ssh to /mnt/local" \
"ssh must be setup on the remote system \
\nsshfs format is as follows: \
\n sshfs user@remoteip:directory /mnt/local \
\n user would be the userid to connect with \
\n remoteip is the IP address or name of host followed by :\

Page 187 of 245


\n directory can be left blank to use user directory \
\n local mount point must be /mnt/local\
\nExample: sshfs g4l@192.168.0.1:img/ /mnt/local \
\n\nNote: make sure that sshfs does work with you setup \
\n /mnt/local will be listed to make sure it mounted. \
\n\nEnter Command with parameters (10 second pause):" 2> $tempfileip
retvalip=$?
case $retvalip in
$DIALOG_OK)
specialcommand=$(cat $tempfileip)
## Some commands don't produce output
## So I have it display the command being run
## Before and After, so you can see
## Exactly what you entered
echo Begin: $specialcommand
$specialcommand
echo Done: $specialcommand
ls /mnt/local
echo "Contents of local /mnt/local directory"
echo "10 Second Pause"
sleep 10;;
esac;;
### sshfs End
### nfs Addition
"D: nfs")
# Set localdrive value
localdrive="nfs"
# Make sure /mnt/local is not mounted
umount /mnt/local
f_inputbox "Mount Remote directory via nfs to /mnt/local" \
"nfs must be setup on the remote system \
\nand Firewall settings must be configured \
\nnfs format is as follows: \
\n mount -t nfs -o nolock remoteip:/nfs /mnt/local \
\n The -o nolock may or may not be required \
\n remoteip is the IP address or name of host followed by :\
\n directory can be left blank to use user directory \
\n local mount point must be /mnt/local\
\nExample: mount -t nfs -o nolock 192.168.0.1:/img /mnt/local \
\n\nNote: make sure that nfs does work with you setup \
\n /mnt/local will be listed to make sure it mounted. \
\n\nEnter Command with parameters (10 second pause):" 0 0 2> $tempfileip
retvalip=$?
case $retvalip in
$DIALOG_OK)
specialcommand=$(cat $tempfileip)
## Some commands don't produce output
## So I have it display the command being run
## Before and After, so you can see
## Exactly what you entered
echo Begin: $specialcommand
$specialcommand

Page 188 of 245


echo Done: $specialcommand
ls /mnt/local
echo "Contents of local /mnt/local directory"
echo "10 Second Pause"
sleep 10;;
esac;;
### nfs End
### cifs Addition
"B: cifs")
# Set localdrive value
localdrive="cifs"
# Make sure /mnt/local is not mounted
umount /mnt/local
f_inputbox "Mount Remote directory via cifs to /mnt/local" \
"cifs (Windows Share) must be setup on the remote system \
\ncifs format is as follows: \
\n mount -t cifs //remoteip/sharename /mnt/local -o user=user,pass=pass \
\n user would be the userid to connect with \
\n remoteip is the IP address or name of host followed by share name\
\n local mount point must be /mnt/local\
\nExample:\n mount -t cifs //192.168.7.168/share1 /mnt/local -o user=user,pass=\"\" \
\n\nNote: make sure that cifs does work with you setup \
\n /mnt/local will be listed to make sure it mounted. \
\n\nEnter Command with parameters (10 second pause):" 0 0 2> $tempfileip
retvalip=$?
case $retvalip in
$DIALOG_OK)
specialcommand=$(cat $tempfileip)
## Some commands don't produce output
## So I have it display the command being run
## Before and After, so you can see
## Exactly what you entered
echo Begin: $specialcommand
$specialcommand
echo Done: $specialcommand
ls /mnt/local
echo "Contents of local /mnt/local directory"
echo "10 Second Pause"
sleep 10;;
esac;;
### cifs End
esac
}
d_netmenu()
{
## Added leading letters to menu options
## to allow for selection by using letters.
## Added option C: to allow for DHCP option
## Added option F: to allow for non-anonymous use
## Added option S: for running extra commands during script
## Added option X: to reboot after finished
## Added the displaying of the current value of values

Page 189 of 245


# Options B: and C: combined into B:
# "C: Config with DHCP" "Set IP address DHCP ($ipaddress)" \
## 2011/03/09
#add code to add nic speed and duplex
speed=""
duplex=""
if [ -n "$device" ] ; then
speed=`ethtool $device | grep Speed | cut -f2 -d:`
duplex=`ethtool $device | grep Duplex | cut -f2 -d:`
fi
$DIALOG --clear --backtitle "$backtitle" \
--title "NETWORK USE" \
--menu "" 24 78 18 \
"A: Pick device" "ethernet device ($device $speed $duplex)" \
"B: Set IP Address" "Manual or via DHCP ($ipaddress)" \
"D: Config FTP" "FTP server IP or hostname ($server)" \
"E: Config useridpass" "useridpass ($useridpass)" \
"F: Config filename" "filename on FTP ($netimagename)" \
"G: Compression" "compression types ($netzip)" \
"H: Backup" "Backup drive/partition to FTP server" \
"I: Restore" "Restore drive/partition from FTP server" \
"M: MBR" "MBR/GPT Backup and Physical Partition Table" \
"N: NTFSCLONE Backup" "Backup NTFS partition to FTP server" \
"O: NTFSCLONE Restore" "Restore NTFS partition from FTP server" \
"P: Path to Image Directory" "Default directory ($ftppath)" \
"S: Special Commands" "example: route, ping, busybox, etc.." \
"T: Display Time" "result after transfer.." \
"U: UDP-MULTICAST-CLIENT" "UDP Multi-cast receive an image/drive" \
"W: UDP-MULTICAST-SERVER" "UDP Multi-cast send an image/drive" \
"V: Encrypt" "($AESPIPE)" \
"X: Reboot/Poweroff" "Reboot/Poweroff machine now" 2> $tempfilenetmenu
}
d_localmenu()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "LOCAL USE" \
--menu "Use following options starting with A: and B:\n\n" 0 78 15 \
"A: Pick Local Mount" "Local, CIFS (Windows), SSHFS, NFS ($localdrive)" \
"B: Config filename" "Set Image filename ($localimagename)" \
"C: Toggle split" "Activate file splitting ($localsplit)" \
"D: Compression" "Select compression types ($localzip)" \
"E: Backup" "Backup drive/partition to local drive" \
"F: Restore" "Restore drive/partition from local drive" \
"G: fsarchiver Backup" "Backup fsarchiver partition to Local" \
"H: fsarchiver Restore" "Restore fsarchiver partition from Local" \
"M: MBR" "MBR Backup and Physical Partition Table" \
"N: NTFSCLONE Backup" "Backup NTFS partition to Local" \
"O: NTFSCLONE Restore" "Restore NTFS partition from Local" \
"P: Set Local Path" "Set sub directory from path ($localpath)" \
"S: Special Commands" "example: route, ping, busybox, etc.." \
"T: Display Time" "result after transfer.." \
"X: Reboot/Poweroff" "Reboot/Poweroff machine now" 2> $tempfilelocalmenu

Page 190 of 245


}
d_clicknclone()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "CLICK'n'CLONE" \
--menu "Choose one of the following options:\n\n" 0 0 0 \
"A: Select source" "Select source drive ($clonesource)" \
"B: Select target" "Select target drive ($clonetarget)" \
"C: Click'n'Clone" "Clone the drive now!" \
"D: Toggle partitions" "in Selections Options" \
"P: PowerOff" "after Click'n'Clone ($xpower)" \
"R: Reboot" "after Clink'n'Clone ($xreboot)" \
"S: Special Commands" "example: route, ping, busybox, etc.." \
"U: UUID RESET" "Create new UUID for partitions on disk" \
"X: Reboot/Poweroff" "Reboot/Poweroff machine now" 2>$tempfileclonemenu
}
d_filemode()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "FILE MODE" \
--menu "Choose one of the following options:\n\n" 0 0 0 \
"A: Pick device" "ethernet device ($device)" \
"B: Config device" "IP address ($ipaddress)" \
"C: Select partition" "partition to mount (server/local mode only) ($filepart)" \
"1: cifs" "Mount remote directory via cifs (Windows Share)" \
"2: sshfs" "Mount remote directory via sshfs" \
"3: nfs" "Mount remote directory via nfs" \
"D: Launch client" "Launch 'partimage' in client/local mode" \
"E: Launch server" "Launch 'partimaged' in server mode" 2> $tempfilefilemenu
}
d_utilities()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "UTILITIES" \
--menu "Choose one of the following options:\n\n" 0 78 16 \
"A: System info" "Show drives, partitions and models" \
"B: dmesg" "Display dmesg Information" \
"C: ftp" "Start ftp server using startftpd script" \
"D: hdparm" "Set 32-bit I/O and UDMA66 (NEW hardware only!)" \
"E: keymap" "Select the keymap to use Default is US" \
"F: ntpclient" "Set the time to a ntp time server (GMT)" \
"G: telnetd" "Start telnetd server to allow telnet" \
"H: Zero-Tool" "Zero-out free space on a partition" \
"I: ddrescue" "Rescue defective drive and clone to new one" \
"J: TestDisk-6.14" "Scan and Repair Disk partitions 07/30/2013" \
"K: Parted" "Launch 'parted' partition manager (EXPERT USE!)" \
"L: TestDisk-7.0" "Scan and Repair Disk partitions 04/10/2015" \
"M: Validate Partition" "Uses f3write and f3read to test partition" \
"S: Special Commands" "example: route, ping, busybox, etc.." \
"U: UUID RESET" "Create new UUID for partitions on disk" \
"X: Reboot/Poweroff" "Reboot/Poweroff machine now" 2> $tempfileutilmenu
}

Page 191 of 245


d_ddrescue()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "DDRESCUE" \
--menu "Choose one of the following options:\n\n" 0 0 0 \
"Source" "Select (defective) source drive ($choiceddressource)" \
"Target" "Select (new/clean) target drive ($choiceddrestarget)" \
"HELP" "ddrescue help screen" \
"Options" "Additional Runtime Options ($ddoptadd)" \
"Rescue" "Rescue the drive now!" 2> $tempfileddres
}
d_udpinfo()
{
$DIALOG --clear --backtitle "$backtitle" \
--title "UDP MULTICAST INFORMATION" \
--msgbox "Be careful: Using UDP Multicast creates high traffic on\
\nyour network devices (i.e. routers, switches, hubs, ...)\
\nand - depending on compression - possibly high load on\
\nboth client and server. Please visit\
\nhttp://udpcast.linux.lu/\
\nand read the manual if you would like to use additional\
\noptions like '--async --max-bitrate 10m --fec 8x8'\
\n(to use 1 peer, async transfer, limit transfer to 80M and use\
\n8x8 matrix of interleave x redundancy error correction)\
\nor others. Default is NO option set.\
\n\nYou might encounter re-xmits which should(!) be no prob." 0 0
}
d_agreemenu
case $? in
$DIALOG_OK)
while [ "$retvalmain" != "1" ]
do
retvalrawmenu=0
retvalfilemenu=0
retvalnetmenu=0
retvalclonemenu=0
retvallocalmenu=0
retval
utilmenu=0
d_mainmenu
retvalmain=$?
choicemain=$(cat $tempfilemain)
case $retvalmain in
$DIALOG_OK)
case $choicemain in
"ClearHP")
hibpage;;
"RAW Mode")
while [ "$retvalrawmenu" != "1" ]
do
d_rawmenu
retvalrawmenu=$?

Page 192 of 245


choicerawmenu=$(cat $tempfilerawmenu)
case $retvalrawmenu in
$DIALOG_OK)
case $choicerawmenu in
"Network use")
retvalnetmenu=0
while [ "$retvalnetmenu" != "1" ]
do
d_netmenu
retvalnetmenu=$?
choicenetmenu=$(cat $tempfilenetmenu)
case $retvalnetmenu in
$DIALOG_OK)
case $choicenetmenu in
"V: Encrypt")
if [ -n "$AESPIPE" ]; then
AESPIPE=""
AESPIPEd=""
else
AESPIPE=" aespipe -K /mykey1.gpg -P /passphrase -G / | "
AESPIPEd="| aespipe -K /mykey1.gpg -P /passphrase -G / -d "
fi;;
"A: Pick device")
f_radiolist "PICK DEVICE" "Choose network device\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$netlist" 2> $tempfiledevice
retvaldevice=$?
choicedevice=$(cat $tempfiledevice)
case $retvaldevice in
$DIALOG_OK)
device=$choicedevice;;
esac;;
"B: Set IP Address")
f_inputbox "Set Network" "Set IP Address to match your subnet. \
\nExample: 192.168.0.5\nLeave BLANK for DHCP\n\nEnter IP Address:" 2> $tempfileip
retvalip=$?
case $retvalip in
$DIALOG_OK)
ipaddress=$(cat $tempfileip)
if test -z $ipaddress ; then
ipaddress=`udhcpc -n -i $device -s./udhcpc.sh 2>&1 |grep lease|cut -d\ -f4 | tr -d "\n"`
fi
/sbin/ifconfig $device $ipaddress up;;
$DIALOG_ESC)
if test -s $tempfileip ; then
ipaddress=$(cat $tempfileip)
/sbin/ifconfig $device $ipaddress up
fi;;
esac;;
## Added option to get IP via dhcpd
## Added the udhcpc to the busybox build and udhcpc.sh script
"C: Config with DHCP")
ipaddress=`udhcpc -n -i $device -s./udhcpc.sh 2>&1 |grep lease|cut -d\ -f4 | tr -d "\n"`

Page 193 of 245


/sbin/ifconfig $device $ipaddress up;;
"M: MBR")
f_mbr "NET";;
"D: Config FTP")
f_inputbox "CONFIG FTP" "Enter IP Address or hostname of FTP Server.\nExample:
192.168.0.1\n\nFTP IP:" 2> $tempfileftp
retvalftp=$?
case $retvalftp in
$DIALOG_OK)
server=$(cat $tempfileftp);;
$DIALOG_ESC)
if test -s $tempfileftp ; then
server=$(cat $tempfileftp)
fi;;
esac;;
"F: Config filename")
##@ Added 4/13/2013 Show message while waiting
dialog --timeout 1 --ok-label "Please Wait" --msgbox "Retrieving List of Files" 5 28
2>/dev/null
### Added this since a user report error if Directory was empty.
### This should add a dummy file that goes at end of list
echo "END_OF_LIST" > {END_OF_LIST}
ncftpput -m $useridpass $server $ftppath/ {END_OF_LIST} 2>/tmp/error
##@ Added 6/14/2009 to Provide user feedback if Write Access doesn't work
##@ or Userid or Password Fail
status=$?
if [ "$status" != "0" ] ; then
$DIALOG --backtitle "$backtitle" \
--pause "Upload Process Failed\n\nCheck FTP Write Access \
\nCheck Userid / Password\
\nIf Restoring Image Only - OK\
\nncftpput Status - $status \
\n0 Success. \
\n1 Could not connect to remote host. \
\n2 Could not connect to remote host - timed out. \
\n3 Transfer failed. \
\n4 Transfer failed - timed out. \
\n5 Directory change failed. \
\n6 Directory change failed - timed out. \
\n7 Malformed URL. \
\n8 Usage error." 23 60 10
fi
##@ Added 5/25/2009 Show Date and Size
files=`ncftpls -l $useridpass ftp://$server/$ftppath/ | awk '{printf("%s/_(%s-%s-%s)_
%.4fGB\n",$9,$6,$7,$8,$5/1024/1024/1024)}' | grep -v 'lost+found' | grep -v 'ncftpls:'`
filelist="`echo Enter File_Date_Size on`"
for i in $files
do
filelist="$filelist `echo $i off`"
done
filelist=`echo $filelist | sed -e 's/\// /g' -e 's/_(/(/g'`
f_radiolist "BACKUP" "Choose Enter for New File Name\n\Z1\Zr\Zb(Use Space Bar)\Zn\n

Page 194 of 245


or Select from following files:" "$filelist" 2> $tempfilenetname
retvalnetback=$?
if [ "$retvalnetback" != "0" ] ; then
echo "Enter" >$tempfilenetname
fi
netimagename=$(cat $tempfilenetname)
if [ "$netimagename" = "Enter" ] ; then
f_inputbox "CONFIG FILENAME" \
"Enter filename of the stored image. \
\nExample: hda_workstation2.lzo \
\nMBR Example: hda_workstartion2.tar.gz \
\n\nFilename:" 2> $tempfilenetname
retvalnetname=$?
case $retvalnetname in
$DIALOG_OK)
netimagename=$(cat $tempfilenetname);;
$DIALOG_ESC)
if test -s $tempfilenetname ; then
netimagename=$(cat $tempfilenetname)
fi;;
esac
fi;;
"P: Path to Image Directory")
f_inputbox "Image Directory" "Enter image directory of the stored image. \
\nCurrent setting: $ftppath\n\nDirectory:" 2> $tempfilenetname
retvalnetname=$?
case $retvalnetname in
$DIALOG_OK)
ftppath=$(cat $tempfilenetname)
if [ -z $ftppath]; then
ftppath="."
fi;;
$DIALOG_ESC)
ftppath=img;;
esac;;
## ncftp utility allows for userid and password to be set
## with the -u userid -p password values.
## Added a variable to contain these values.
"E: Config useridpass")
f_inputbox "CONFIG USERIDPASS" "Enter userid and password option. \
\nExample: -u userx -p password\n or userx:password\n\nOptions:" 2> $tempfilenetname
retvalnetname=$?
case $retvalnetname in
$DIALOG_OK)
useridpass=$(cat $tempfilenetname)
## Added to support user:password format conversion to ncftp format
f_userpass;;
$DIALOG_ESC)
if test -s $tempfilenetname ; then
useridpass=$(cat $tempfilenetname)
## Added to support user:password format conversion to ncftp format
f_userpass

Page 195 of 245


fi;;
esac;;
## Changed default compress to Lzop
"G: Compression")
f_compress 2> $tempfilenetzip
retvalnetzip=$?
choicenetzip=$(cat $tempfilenetzip)
case $retvalnetzip in
$DIALOG_OK)
netzip=$(cat $tempfilenetzip);;
$DIALOG_ESC)
if test -s $tempfilenetzip ; then
netzip=$(cat $tempfilenetzip)
fi;;
esac;;
"H: Backup")
f_chk_value_net
f_radiolist "BACKUP" "Choose Drive or Partition to backup\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$partlist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
if [ "$choicenetback" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
f_yesno "ABOUT TO BACKUP" "Collected information:\
\nLocal IP Address: $ipaddress\
\nFTP IP Address: $server\
\nTarget imagename: $netimagename\
\nFTP path: $ftppath\
\nCompression: $netzip\
\nSource Drive: $disk\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
readsize=`getsize $choicenetback`
pcnt=0
## msg set for backups.
msg="$projectname is backing up your drive.\n"
if [ "$netzip" = "None" ] ; then
xcmd="(dd bs=1M if=$disk 2>/dev/null | jetcat-mod -f 5000 -p $readsize 2>$progout |
$AESPIPE ncftpput $ncftpopt -m $useridpass -c -d /tmp/out $server "$ftppath/$netimagename"
2>>$ncftpstat) &"
fi
if [ "$netzip" = "GZip" ] ; then
xcmd="(dd bs=1M if=$disk 2>/dev/null | jetcat-mod -f 5000 -p $readsize 2>$progout |
gzip -c - | $AESPIPE ncftpput $ncftpopt -m $useridpass -c -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat) &"

Page 196 of 245


fi
if [ "$netzip" = "Lzop" ] ; then
xcmd="(dd bs=1M if=$disk 2>/dev/null | jetcat-mod -f 5000 -p $readsize 2>$progout |
lzop -c - | $AESPIPE ncftpput $ncftpopt -m $useridpass -c -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat) &"
fi
if [ "$netzip" = "BZip2" ] ; then
xcmd="(dd bs=1M if=$disk 2>/dev/null | jetcat-mod -f 5000 -p $readsize 2>$progout |
bzip2 | $AESPIPE ncftpput $ncftpopt -m $useridpass -c -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat) &"
fi
sh -c "$xcmd"
progress
restartcheck;;
esac;;
esac;;
"N: NTFSCLONE Backup")
f_chk_value_net
f_radiolist "BACKUP" "Choose NTFS Partition ONLY to backup\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$partonly" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
if [ "$choicenetback" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
date ### Echo Start Time
date >/tmp/time
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
f_yesno "ABOUT TO BACKUP" "Collected information:\
\nLocal IP Address: $ipaddress\
\nFTP IP Address: $server\
\nTarget imagename: $netimagename\
\nFTP path: $ftppath\
\nCompression: $netzip\
\nSource Drive: $disk\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
readsize=`getsize $choicenetback`
pcnt=0
## msg set for backups.
msg="$projectname is backing up your drive.\n"
if [ "$netzip" = "None" ] ; then
xcmd="(ntfsclone -s -o - $disk |$AESPIPE ncftpput $ncftpopt -m $useridpass -c -d
/tmp/out $server "$ftppath/$netimagename" 2>>$ncftpstat) "
fi
if [ "$netzip" = "GZip" ] ; then
xcmd="(ntfsclone -s -o - $disk|gzip -c - | $AESPIPE ncftpput $ncftpopt -m

Page 197 of 245


$useridpass -c -d /tmp/out $server "$ftppath/$netimagename" 2>>$ncftpstat) "
fi
if [ "$netzip" = "Lzop" ] ; then
xcmd="(ntfsclone -s -o - $disk|lzop -c - | $AESPIPE ncftpput $ncftpopt -m
$useridpass -c -d /tmp/out $server "$ftppath/$netimagename" 2>>$ncftpstat) "
fi
if [ "$netzip" = "BZip2" ] ; then
xcmd="(ntfsclone -s -o - $disk |bzip2 | $AESPIPE ncftpput $ncftpopt -m $useridpass
-c -d /tmp/out $server "$ftppath/$netimagename" 2>>$ncftpstat) "
fi
sh -c "$xcmd"
restartcheck;;
esac
date ### Echo End Time
date >>/tmp/time
sleep 10 ### Pause;;
esac;;
#### Adding option to multi-cast image to many machines at one time
#### with multi-cast instead of uni-cast.
"U: UDP-MULTICAST-CLIENT")
if [ "$ipaddress" = "" ] ; then
f_msgbox "ERROR" "No Network IP Address for $device set!\n->Back to Main Menu."
continue
fi
### 2012/01/21
d_udpinfo
f_inputbox "Set UDP options" \
"Enter additional options for udp-sender. \
\nExample: --async --max-bitrate 80m --fec 8x8 \
\nNote: Best to use no additional options first \
\n\nEnter options:" 2> $tempfileudpoption
retvaludpoption=$?
case $retvaludpoption in
$DIALOG_OK)
udpoption=$(cat $tempfileudpoption);;
$DIALOG_ESC)
if test -s $tempfileudpoption ; then
udpoption=$(cat $tempfileudpoption)
fi;;
esac
### 2012/01/21
f_radiolist "RESTORE" "Choose Drive or Partition to restore/receive\n\Z1\Zr\Zb(Use
Space Bar)\Zn\nSelect from:" "$partlist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback
f_yesno "ABOUT TO UDP-RECEIVE" "Collected information:\
\nLocal IP Address: $ipaddress\
\nCompression: $netzip\
\nDestination Drive: $disk\

Page 198 of 245


\n\nThis uses UDPCAST - udp-receiver\
\nFrom http://udpcast.linux.lu/\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
readsize=`getsize $choicenetback`
pcnt=0
## msg set for backups.
msg="$projectname is using udp-receive restore/receive your drives.\n"
if [ "$netzip" = "None" ] ; then
(udp-receiver $udpoption --interface $device -f $disk)
fi
if [ "$netzip" = "Lzop" ] ; then
(udp-receiver $udpoption --interface $device --pipe 'lzop -d -c -' -f $disk)
fi
if [ "$netzip" = "GZip" ] ; then
(udp-receiver $udpoption --interface $device --pipe 'gunzip -c -' -f $disk)
fi
if [ "$netzip" = "BZip2" ] ; then
(udp-receiver $udpoption --interface $device --pipe 'bzcat' -f $disk)
fi
echo "10 Second Pause"
sleep 10;;
esac;;
esac;;
"W: UDP-MULTICAST-SERVER")
if [ "$ipaddress" = "" ] ; then
f_msgbox "ERROR" "No Network IP Address for $device set!\n->Back to Main Menu."
continue
fi
d_udpinfo
f_inputbox "Set UDP options" \
"Enter additional options for udp-sender. \
\nExample: --async --max-bitrate 80m --fec 8x8 \
\nNote: Best to use no additional options first \
\n\nEnter options:" 2> $tempfileudpoption
retvaludpoption=$?
case $retvaludpoption in
$DIALOG_OK)
udpoption=$(cat $tempfileudpoption);;
$DIALOG_ESC)
if test -s $tempfileudpoption ; then
udpoption=$(cat $tempfileudpoption)
fi;;
esac
f_radiolist "BACKUP" "Choose Drive or Partition to backup/send\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$partlist" 2> $tempfilenetback
retvalnetback=$?
choicenetback=$(cat $tempfilenetback)
case $retvalnetback in
$DIALOG_OK)
disk=/dev/$choicenetback

Page 199 of 245


f_yesno "ABOUT TO UDP-SEND" "Collected information:\
\nLocal IP Address: $ipaddress\
\nCompression: $netzip\
\nSource Drive: $disk\
\n\nThis uses UDPCAST - udp-sender\
\nFrom http://udpcast.linux.lu/\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
readsize=`getsize $choicenetback`
pcnt=0
## msg set for backups.
msg="$projectname is using udp-send to backup/send your drives.\n"
if [ "$netzip" = "None" ] ; then
(udp-sender $udpoption --interface $device -f $disk)
fi
if [ "$netzip" = "Lzop" ] ; then
(lzop -c <$disk | udp-sender $udpoption --interface $device)
fi
if [ "$netzip" = "GZip" ] ; then
(gzip -c <$disk | udp-sender $udpoption --interface $device)
fi
if [ "$netzip" = "BZip2" ] ; then
(bzip2 -c <$disk | udp-sender $udpoption --interface $device)
fi
echo "10 Second Pause"
sleep 10;;
esac;;
esac;;
"S: Special Commands")
f_specialopt;;
"T: Display Time")
f_textbox "TIME RESULTS" /tmp/time;;
## Instead of having to exit all the way out of the script
## or pressing the reset button, just added a reboot option.
"X: Reboot/Poweroff")
f_rebootpoweroff;;
"O: NTFSCLONE Restore")
f_chk_value_net
f_radiolist "RESTORE" "Choose NTFS partition to restore the image to\n\Z1\Zr\Zb(Use
Space Bar)\Zn\n\nSelect from:" "$partonly" 2> $tempfilenetrest
retvalnetrest=$?
choicenetrest=$(cat $tempfilenetrest)
if [ "$choicenetrest" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
case $retvalnetrest in
$DIALOG_OK)
rest=/dev/$choicenetrest
f_yesno "ABOUT TO RESTORE" "Collected information:\

Page 200 of 245


\nLocal IP Address: $ipaddress\
\nFTP IP Address: $server\
\nSource imagename: $netimagename\
\nFTP path: $ftppath\
\nCompression: $netzip\
\nTarget disk: $rest\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
writesize=`getsize $choicenetrest`
pcnt=0
## msg for the restore options
msg="$projectname is restoring your drive.\n"
date >/tmp/time
if [ "$netzip" = "None" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | ntfsclone -r --overwrite $rest - ) "
fi
if [ "$netzip" = "GZip" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | gunzip -c -| ntfsclone -r --overwrite $rest - ) "
fi
if [ "$netzip" = "Lzop" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | lzop -d -c -| ntfsclone -r --overwrite $rest - ) "
fi
if [ "$netzip" = "BZip2" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | bzcat | ntfsclone -r --overwrite $rest - ) "
fi
sh -c "$xcmd"
date >>/tmp/time
rm /tmp/out
touch /tmp/out
restartcheck;;
esac;;
esac;;
"I: Restore")
f_chk_value_net
f_radiolist "RESTORE" "Choose drive or partition to restore the image to\n\Z1\Zr\Zb(Use
Space Bar)\Zn\n\nSelect from:" "$partlist" 2> $tempfilenetrest
retvalnetrest=$?
choicenetrest=$(cat $tempfilenetrest)
if [ "$choicenetrest" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
case $retvalnetrest in
$DIALOG_OK)
rest=/dev/$choicenetrest
f_yesno "ABOUT TO RESTORE" "Collected information:\

Page 201 of 245


\nLocal IP Address: $ipaddress\
\nFTP IP Address: $server\
\nSource imagename: $netimagename\
\nFTP path: $ftppath\
\nCompression: $netzip\
\nTarget disk: $rest\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
writesize=`getsize $choicenetrest`
pcnt=0
## msg for the restore options
msg="$projectname is restoring your drive.\n"
if [ "$netzip" = "None" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | jetcat-mod -f 5000 -p $writesize 2>$progout | dd bs=1M
of=$rest 2>/dev/null) &"
fi
if [ "$netzip" = "GZip" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | gunzip -c -| jetcat-mod -f 5000 -p $writesize 2>$progout
|dd bs=1M of=$rest 2>/dev/null) &"
fi
if [ "$netzip" = "Lzop" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | lzop -d -c -| jetcat-mod -f 5000 -p $writesize
2>$progout |dd bs=1M of=$rest 2>/dev/null) &"
fi
if [ "$netzip" = "BZip2" ] ; then
xcmd="(ncftpget $ncftpopt $useridpass -c -V -d /tmp/out $server "$ftppath/
$netimagename" 2>>$ncftpstat $AESPIPEd | bzcat | jetcat-mod -f 5000 -p $writesize 2>$progout |dd
bs=1M of=$rest 2>/dev/null) &"
fi
sh -c "$xcmd"
progress
rm /tmp/out
touch /tmp/out
restartcheck;;
esac;;
esac;;
esac;;
esac
done;;
"Local use")
retvallocalmenu=0
localsplit="Off"
localzip="Lzop"
while [ "$retvallocalmenu" != "1" ]
do
d_localmenu
retvallocalmenu=$?
choicelocalmenu=$(cat $tempfilelocalmenu)

Page 202 of 245


case $retvallocalmenu in
$DIALOG_OK)
case $choicelocalmenu in
"A: Pick Local Mount")
d_localmount;;
"M: MBR")
f_mbr "LOCAL";;
"T: Display Time")
f_textbox "TIME RESULTS" /tmp/time;;
"X: Reboot/Poweroff")
f_rebootpoweroff;;
### Modified to give list of files on /mnt/local
"B: Config filename")
files=`ls -1 -p /mnt/local$localpath | grep -v /`
filelist="`echo Enter Filename on`"
for i in $files
do
extx=`echo ${i##*.}`
if [ "$extx" = "00" ] ; then
ii=${i%\.*}
filelist="$filelist `echo $ii file off`"
fi
filelist="$filelist `echo $i file off`"
done
f_radiolist "BACKUP" "Choose Enter for New File Name\n\Z1\Zr\Zb(Use Space Bar)\Zn\n
or Select from following files:" "$filelist" 2> $tempfilelocalname
retvallocalname=$?
localimagename=$(cat $tempfilelocalname)
if [ "$localimagename" = "Enter" ] ; then
f_inputbox "CONFIG FILENAME" "Enter filename of the stored image. \
\nExample: hda_workstation2.img\n\nFilename:" 2> $tempfilelocalname
retvallocalname=$?
case $retvallocalname in
$DIALOG_OK)
localimagename=$(cat $tempfilelocalname);;
$DIALOG_ESC)
if test -s $tempfilelocalname ; then
localimagename=$(cat $tempfilelocalname)
fi;;
esac
fi;;
## 11/25/2010 local path
"P: Set Local Path")
files=`ls -1 -p /mnt/local$localpath | grep /`
filelist="`echo / Path on`"
for i in $files
do
filelist="$filelist `echo $i file off`"
done
f_radiolist "BACKUP" "Choose / for Current Path Name\Z1\Zr\Zb(Use Space Bar)\Zn\n or
Select from following files:" "$filelist" 2> $tempfilelocalpath
localpath=/$(cat $tempfilelocalpath)

Page 203 of 245


if [ "$localpath" = "//" ] ; then
localpath="/"
fi;;
## 11/25/2010 local path
"C: Toggle split")
$DIALOG --backtitle "$backtitle" \
--title "TOGGLE SPLIT" --colors \
--radiolist "Choose if the imagefile should be split.\n\Z1\Zr\Zb(Use Space Bar)\Zn\
\nIf the FS limits filesize to 2GB, enable splitting!" 0 0 0 \
"Off" "Splitting off." ON \
"On" "Splitting on." off 2> $tempfilelocalsplit
retvallocalsplit=$?
choicelocalsplit=$(cat $tempfilelocalsplit)
case $retvallocalsplit in
$DIALOG_OK)
localsplit=$(cat $tempfilelocalsplit);;
$DIALOG_ESC)
if test -s $tempfilelocalsplit ; then
localsplit=$(cat $tempfilelocalsplit)
fi;;
esac;;
"D: Compression")
f_compress 2> $tempfilelocalzip
retvallocalzip=$?
choicelocalzip=$(cat $tempfilelocalzip)
case $retvallocalzip in
$DIALOG_OK)
localzip=$(cat $tempfilelocalzip);;
$DIALOG_ESC)
if test -s $tempfilelocalzip ; then
localzip=$(cat $tempfilelocalzip)
fi;;
esac;;
"E: Backup")
f_chk_value_local
f_radiolist "BACKUP" "Choose Drive or Partition to backup\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$partlist" 2> $tempfilelocalback
retvallocalback=$?
choicelocalback=$(cat $tempfilelocalback)
case $retvallocalback in
$DIALOG_OK)
localback=/dev/$choicelocalback
if [ "$choicelocalback" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
f_yesno "ABOUT TO BACKUP" "Collected information:\
\nTarget drive in /mnt/local$localpath: $localdrive\
\nFilename for image: $localimagename\
\nSplitting: $localsplit\
\nCompression: $localzip\

Page 204 of 245


\nSource drive: $localback\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
readsize=`getsize $choicelocalback`
pcnt=0
## Message for local backup
msg="$projectname is backing up your drive locally.\n"
if [ "$localzip" = "None" ] ; then
if [ "$localsplit" = "Off" ] ; then
dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout | dd
bs=1M of=/mnt/local$localpath$localimagename 2>/dev/null &
fi
if [ "$localsplit" = "On" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
split -d -b 1000m - /mnt/local$localpath$localimagename. ) &
fi
fi
if [ "$localzip" = "GZip" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
gzip -c - >/mnt/local$localpath$localimagename) &
fi
if [ "$localsplit" = "On" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
gzip -c - | split -d -b 1000m - /mnt/local$localpath$localimagename. ) &
fi
fi
if [ "$localzip" = "Lzop" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
lzop -c - >/mnt/local$localpath$localimagename) &
fi
if [ "$localsplit" = "On" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
lzop -c - | split -d -b 1000m - /mnt/local$localpath$localimagename. ) &
fi
fi
if [ "$localzip" = "BZip2" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
bzip2 >/mnt/local$localpath$localimagename) &
fi
if [ "$localsplit" = "On" ] ; then
(dd bs=1M if=$localback 2>/dev/null |jetcat-mod -f 5000 -p $readsize 2>$progout |
bzip2 | split -d -b 1000m - /mnt/local$localpath$localimagename. ) &
fi
fi
progress
### umount /mnt/local
rm /tmp/out
touch /tmp/out

Page 205 of 245


restartcheck;;
esac;;
esac;;
"G: fsarchiver Backup")
if [ "$localimagename" = "" ] ; then
f_msgbox "WARNING" "No filename for image set, using default\nFilename:
image.img.gz"
localimagename=image.img.gz
fi
f_radiolist "BACKUP" "Choose Partition to backup\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect
from:" "$partlist" 2> $tempfilelocalback
retvallocalback=$?
choicelocalback=$(cat $tempfilelocalback)
if [ "$choicelocalback" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
f_radiolist "Fsarchiver compression" "Choose Compression Option\nHigher Numbers
give better compression\nBut take much more time\n(Use Space Bar to Select" \
"1 lzo-3 on \
2 gzip-3 off \
3 gzip-6 off \
4 gzip-9 off \
5 bzip2-2 off \
6 bzip2-5 off \
7 lzma-1 off \
8 lzma-6 off \
9 lzma-9 off" 2> $tempfilelocalzip
retvallocalzip=$?
choicelocalzip=$(cat $tempfilelocalzip)
date ### Echo Start Time
date >/tmp/time
case $retvallocalback in
$DIALOG_OK)
disk=/dev/$choicelocalback
f_yesno "ABOUT TO BACKUP" "Collected information:\
\nTarget imagename: $localimagename\
\nCompression: $localzip\
\nSource Drive: $disk\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
f_radiolist "fsarchiver" "Select Version of Fsarchiver to use\n\Z1\Zb(Use Space
Bar)\Zn\
\n" "fsarchiver released on fsarchiver7 beta off" 2> /tmp/fsarchiver
fsarchiver=$(cat /tmp/fsarchiver)
$fsarchiver savefs -v -o -z $choicelocalzip /mnt/local$localpath$localimagename $disk
restartcheck;;
esac
date ### Echo End Time
date >>/tmp/time

Page 206 of 245


sleep 10 ### Pause;;
esac;;
"H: fsarchiver Restore")
if [ "$localimagename" = "" ] ; then
f_msgbox "WARNING" "No filename for image set, using default\nFilename:
image.img.gz"
localimagename=image.img.gz
fi
if [ "$localzip" = "" ] ; then
f_msgbox "WARNING" "Compression not defined, using default\nCompression: None"
localzip=None
fi
f_radiolist "RESTORE" "Choose partition to restore the image to\n\Z1\Zr\Zb(Use Space
Bar)\Zn\n\nSelect from:" "$partlist" 2> $tempfilelocalrest
retvallocalrest=$?
choicelocalrest=$(cat $tempfilelocalrest)
if [ "choicelocalrest" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
case $retvallocalrest in
$DIALOG_OK)
rest=/dev/$choicelocalrest
f_yesno "ABOUT TO RESTORE" "Collected information:\
\nSource imagename: $localimagename\
\nCompression: $localzip\
\nTarget disk: $rest\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
## msg for the restore options
msg="$projectname is restoring your drive.\n"
date >/tmp/time
### 07/21/2007
f_radiolist "fsarchiver" "Select Version of Fsarchiver to use\n\Z1\Zb(Use Space
Bar)\Zn\
\n" "fsarchiver released on fsarchiver7 beta off" 2> /tmp/fsarchiver
fsarchiver=$(cat /tmp/fsarchiver)
$fsarchiver restfs -v /mnt/local$localpath$localimagename id=0,dest=$rest
date >>/tmp/time
sleep 10
rm /tmp/out
touch /tmp/out
restartcheck;;
esac;;
esac;;
"N: NTFSCLONE Backup")
if [ "$localimagename" = "" ] ; then
f_msgbox "WARNING" "No filename for image set, using default\nFilename:
image.img.gz"
localimagename=image.img.gz

Page 207 of 245


fi
if [ "$localzip" = "" ] ; then
f_msgbox "WARNING" "Compression not defined, using default\nCompression: None"
localzip=None
fi
f_radiolist "BACKUP" "Choose NTFS Partition ONLY to backup\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$partonly" 2> $tempfilelocalback
retvallocalback=$?
choicelocalback=$(cat $tempfilelocalback)
if [ "$choicelocalback" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
date ### Echo Start Time
date >/tmp/time
case $retvallocalback in
$DIALOG_OK)
disk=/dev/$choicelocalback
f_yesno "ABOUT TO BACKUP" "Collected information:\
\nTarget imagename: $localimagename\
\nCompression: $localzip\
\nSource Drive: $disk\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
readsize=`getsize $choicelocalback`
pcnt=0
## msg set for backups.
## 07/21/2007
msg="$projectname is backing up your drive.\n"
if [ "$localzip" = "None" ] ; then
if [ "$localsplit" = "Off" ] ; then
(ntfsclone -s -o - $disk >/mnt/local$localpath$localimagename )
fi
if [ "$localsplit" = "On" ] ; then
(ntfsclone -s -o - $disk |split -d -b 1000m - /mnt/local$localpath$localimagename. )
fi
fi
if [ "$localzip" = "GZip" ] ; then
if [ "$localsplit" = "Off" ] ; then
(ntfsclone -s -o - $disk |gzip -c - >/mnt/local$localpath$localimagename )
fi
if [ "$localsplit" = "On" ] ; then
(ntfsclone -s -o - $disk |gzip -c - | split -d -b 1000m -
/mnt/local$localpath$localimagename. )
fi
fi
if [ "$localzip" = "Lzop" ] ; then
if [ "$localsplit" = "Off" ] ; then
(ntfsclone -s -o - $disk |lzop -c - >/mnt/local$localpath$localimagename )
fi

Page 208 of 245


if [ "$localsplit" = "On" ] ; then
(ntfsclone -s -o - $disk |lzop -c - | split -d -b 1000m -
/mnt/local$localpath$localimagename. )
fi
fi
if [ "$netzip" = "BZip2" ] ; then
if [ "$localsplit" = "Off" ] ; then
(ntfsclone -s -o - $disk |bzip2 >/mnt/local$localpath$localimagename )
fi
if [ "$localsplit" = "On" ] ; then
(ntfsclone -s -o - $disk |bzip2 | split -d -b 1000m -
/mnt/local$localpath$localimagename. )
fi
fi
restartcheck;;
esac
date ### Echo End Time
date >>/tmp/time
sleep 10 ### Pause;;
esac;;
"O: NTFSCLONE Restore")
if [ "$localimagename" = "" ] ; then
f_msgbox "WARNING" "No filename for image set, using default\nFilename:
image.img.gz"
localimagename=image.img.gz
fi
if [ "$localzip" = "" ] ; then
f_msgbox "WARNING" "Compression not defined, using default\nCompression: None"
localzip=None
fi
f_radiolist "RESTORE" "Choose NTFS partition to restore the image to\n\Z1\Zr\Zb(Use
Space Bar)\Zn\n\nSelect from:" "$partonly" 2> $tempfilelocalrest
retvallocalrest=$?
choicelocalrest=$(cat $tempfilelocalrest)
if [ "choicelocalrest" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
case $retvallocalrest in
$DIALOG_OK)
rest=/dev/$choicelocalrest
f_yesno "ABOUT TO RESTORE" "Collected information:\
\nSource imagename: $localimagename\
\nCompression: $localzip\
\nTarget disk: $rest\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
writesize=`getsize $choicelocalrest`
pcnt=0
## msg for the restore options

Page 209 of 245


msg="$projectname is restoring your drive.\n"
date >/tmp/time
### 07/21/2007
multifiles="";
if [ "$localsplit" = "On" ] ; then
multifiles=".*";
fi
if [ "$localzip" = "None" ] ; then
(cat /mnt/local$localpath$localimagename$mulifiles | ntfsclone -r --overwrite $rest - )
fi
if [ "$localzip" = "GZip" ] ; then
(cat /mnt/local$localpath$localimagename$multifiles | gunzip -c -| ntfsclone -r
--overwrite $rest - )
fi
if [ "$localzip" = "Lzop" ] ; then
(cat /mnt/local$localpath$localimagename$multifiles | lzop -d -c -| ntfsclone -r
--overwrite $rest - )
fi
if [ "$localzip" = "BZip2" ] ; then
(cat /mnt/local$localpath$localimagename$multifiles | bzcat | ntfsclone -r --overwrite
$rest - )
fi
date >>/tmp/time
sleep 10
rm /tmp/out
touch /tmp/out
restartcheck;;
esac;;
esac;;
"S: Special Commands")
f_specialopt;;
"F: Restore")
f_chk_value_local
f_radiolist "RESTORE" "Choose Drive or Partition to restore\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$partlist" 2> $tempfilelocalrest
retvallocalrest=$?
choicelocalrest=$(cat $tempfilelocalrest)
if [ "$choicelocalrest" = "" ] ; then
f_msgbox "ERROR" "No DISK or Partition Selected\nMust use SpaceBar to select
Disk/Partition\n->Back to Main Menu."
continue
fi
case $retvallocalrest in
$DIALOG_OK)
localrest=/dev/$choicelocalrest
f_yesno "ABOUT TO RESTORE" "Collected information:\
\nImage File drive in /mnt/local: $localdrive\
\nFilename for image: $localimagename\
\nSplitting: $localsplit\
\nCompression: $localzip\
\nTarget drive: $localrest\
\n\nAre you sure?"

Page 210 of 245


case $? in
$DIALOG_OK)
writesize=`getsize $choicelocalrest`
pcnt=0
## msg for local restore
msg="$projectname is locally restoring your drive.\n"
if [ "$localzip" = "None" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=/mnt/local$localpath$localimagename 2>/dev/null |jetcat-mod -f 5000
-p $writesize 2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
if [ "$localsplit" = "On" ] ; then
(cat /mnt/local$localpath$localimagename.* |jetcat-mod -f 5000 -p $writesize
2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
fi
if [ "$localzip" = "GZip" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=/mnt/local$localpath$localimagename 2>/dev/null |gunzip -c - |jetcat-
mod -f 5000 -p $writesize 2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
if [ "$localsplit" = "On" ] ; then
(cat /mnt/local$localpath$localimagename.* |gunzip -c - |jetcat-mod -f 5000 -p
$writesize 2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
fi
if [ "$localzip" = "Lzop" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=/mnt/local$localpath$localimagename 2>/dev/null |lzop -d -c - |jetcat-
mod -f 5000 -p $writesize 2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
if [ "$localsplit" = "On" ] ; then
(cat /mnt/local$localpath$localimagename.* |lzop -d -c - |jetcat-mod -f 5000 -p
$writesize 2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
fi
if [ "$localzip" = "BZip2" ] ; then
if [ "$localsplit" = "Off" ] ; then
(dd bs=1M if=/mnt/local$localpath$localimagename 2>/dev/null |bzcat |jetcat-mod -f
5000 -p $writesize 2>$progout |dd bs=1M of=$localrest 2>/dev/null) &
fi
if [ "$localsplit" = "On" ] ; then
(bzip2 -dc /mnt/local$localpath$localimagename.* | jetcat-mod -f 5000 -p $writesize
2>$progout | dd bs=1M of=$localrest 2>/dev/null) &
## bzcat not using multiple files...
## (bzcat /mnt/local$localpath$localimagename.* |jetcat-mod -f 5000 -p $writesize
2>$progout | dd bs=1M of=$localrest 2>/dev/null) &
fi
fi
progress
### umount /mnt/local
rm /tmp/out

Page 211 of 245


touch /tmp/out
restartcheck;;
esac;;
esac;;
esac;;
esac
done;;
"Click'n'Clone")
retvalclonemenu=0
while [ "$retvalclonemenu" != "1" ]
do
d_clicknclone
retvalclonemenu=$?
choiceclonemenu=$(cat $tempfileclonemenu)
case $retvalclonemenu in
$DIALOG_OK)
case $choiceclonemenu in
"D: Toggle partitions")
f_toggle_disklist;;
"U: UUID RESET")
uuidChange;;
"P: PowerOff")
f_toggle_poweroff;;
"R: Reboot")
f_toggle_reboot;;
"X: Reboot/Poweroff")
f_rebootpoweroff;;
"A: Select source")
f_radiolist "SELECT SOURCE" "Choose source drive to clone.\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$disklist" 2> $tempfileclonesource
retvalclonesource=$?
choiceclonesource=$(cat $tempfileclonesource)
case $retvalclonesource in
$DIALOG_OK)
clonesource=/dev/$choiceclonesource
##echo "Additional hdparm info on disk to confirm it as source" >/tmp/diskinfo
##hdparm -i $clonesource >>/tmp/diskinfo
##printf "\nblkid info:\n" >> /tmp/diskinfo
##blkid $clonesource* >> /tmp/diskinfo
##sed -e 's/ //g' /tmp/diskinfo | fold -w 72 -s >/tmp/diskinfo2
##f_textbox "CLONE SOURCE DISK INFO" /tmp/diskinfo2 ;;
f_partdiskinfo "$clonesource" "CLONE SOURCE DISK INFO" ;;
esac;;
"S: Special Commands")
f_specialopt;;
"B: Select target")
f_radiolist "SELECT TARGET" "Choose target drive to clone to.\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nAttention: Select a drive with at least\
\nthe same capacity. Higher capacity is OK.\nSelect from:" "$disklist" 2> $tempfileclonetarget
retvalclonetarget=$?
choiceclonetarget=$(cat $tempfileclonetarget)
case $retvalclonetarget in

Page 212 of 245


$DIALOG_OK)
clonetarget=/dev/$choiceclonetarget
##echo "Additional hdparm info on disk to confirm it as target" >/tmp/diskinfo
##hdparm -i $clonetarget >>/tmp/diskinfo
##printf "\nblkid info:\n" >> /tmp/diskinfo
##blkid $clonetarget* >> /tmp/diskinfo
##sed -e 's/ //g' /tmp/diskinfo | fold -w 72 -s >/tmp/diskinfo2
##f_textbox "CLONE TARGET DISK INFO" /tmp/diskinfo2 ;;
f_partdiskinfo "$clonetarget" "CLONE TARGET DISK INFO" ;;
esac;;
"C: Click'n'Clone")
if [ "$clonesource" = "" ] || [ "$clonesource" = "/dev/" ] ; then
f_msgbox "ERROR" "No source drive for cloning set!\nMust use SpaceBar to select
Disk\n->Back to Main Menu."
continue
fi
if [ "$clonetarget" = "" ] || [ "$clonetarget" = "/dev/" ] ; then
f_msgbox "ERROR" "No target drive for cloning set!\nMust use SpaceBar to select
Disk\n->Back to Main Menu."
continue
fi
f_yesno "ABOUT TO CLONE" "Collected information:\nSource drive:
$clonesource\nTarget drive: $clonetarget\n\nAre you sure?"
case $? in
$DIALOG_OK)
clonesize=`getsize $choiceclonesource`
pcnt=0
## msg for cloning drive
msg="$projectname is cloning drive\n"
dd bs=1M if=$clonesource 2>/dev/null |jetcat-mod -f 5000 -p $clonesize 2>$progout |dd
bs=1M of=$clonetarget 2>/dev/null &
progress
restartcheck;;
esac;;
esac;;
esac
done;;
esac;;
esac
done;;
"File Mode")
while [ "$retvalfilemenu" != "1" ]
do
d_filemode
retvalfilemenu=$?
choicefilemenu=$(cat $tempfilefilemenu)
case $retvalfilemenu in
$DIALOG_OK)
case $choicefilemenu in
"A: Pick Local Mount")
d_localmount;;
"B: Config device")

Page 213 of 245


f_inputbox "CONFIG DEVICE" "Set IP Address to match your subnet.\nExample:
192.168.0.5\n\nEnter IP Address:" 2> $tempfilefileip
retvalfileip=$?
case $retvalfileip in
$DIALOG_OK)
ipaddress=$(cat $tempfilefileip)
/sbin/ifconfig $filedevice $fileipaddress up;;
$DIALOG_ESC)
if test -s $tempfilefileip ; then
ipaddress=$(cat $tempfilefileip)
/sbin/ifconfig $device $ipaddress up
fi;;
esac;;
"C: Select partition")
f_radiolist "SELECT PARTITION" \
"Choose drive to mount.\n\Z1\Zr\Zb(Use Space Bar)\Zn\
\nThe selected drive will be mounted to /mnt/local
\nand partimage may write to this directory.\
\n\nSupported FS are:\
\next2. ext3, ext4, reiserfs - Linux\
\nfat32 - Windows95/98/NT/2k/XP\
\nntfs - Windows NT/2k/XP\
\nJFS and XFS\
\n\nSelect partition(!) (example: /dev/hda1):" "$partonly" 2> $tempfilefilepart
retvalfilepart=$?
choicefilepart=$(cat $tempfilefilepart)
case $retvalfilepart in
$DIALOG_OK)
filepart=$choicefilepart
mount /dev/$filepart /mnt/local >/tmp/filemount 2>&1
retvalfilemount=$?
if [ $retvalfilemount != 0 ] ; then
f_textbox "ERROR" /tmp/filemount
filepart=""
umount /mnt/local
else
## July 18, 2008
## NTFS RW partition support
## Obsolete. Setup of mount.helpers.
## testntfs=`cat /etc/mtab | grep /dev/$filepart | cut -f 3 -d\ `
## if [ "$testntfs" = "ntfs" ]; then
## umount /mnt/local 2>/dev/null
## ntfs-3g /dev/$filepart /mnt/local >/tmp/mount 2>&1
## fi
##
f_msgbox "STATUS" "Partition mounted in /mnt/local.\
\nYou can now launch partimage to create or restore an image.\
\nAs target file enter a filename in /mnt/local/,\
\nfor example: /mnt/local/backup_hda1.img.gz\
\n\n\nYou can also launch partimage in network mode."
fi;;
esac;;

Page 214 of 245


"D: Launch client")
clear
partimage -f3
echo "10 Second Pause"
sleep 10
umount /mnt/local;;
"E: Launch server")
f_msgbox "INFO" "partimage server will be launched now.\
\nAfter it started, remove the CD and use it\
\nto launch the partimage client on another machine."
clear
cd /mnt/local
partimaged
cd /
echo "10 Second Pause"
sleep 10
umount /mnt/local
esac;;
esac
done;;
"Utilities")
while [ "$retvalutilmenu" != "1" ]
do
d_utilities
retvalutilmenu=$?
choiceutilmenu=$(cat $tempfileutilmenu)
case $retvalutilmenu in
$DIALOG_OK)
case $choiceutilmenu in
"A: System info")
f_textbox "SYSTEM INFO" /tmp/sysinfo;;
"U: UUID RESET")
uuidChange;;
"D: hdparm")
f_yesno "WARNING" "This option tries to enable 32-bit I/O mode\
\nand UDMA/66 mode on your IDE Controller and drive.\
\n\nThe system might hang and require a reboot!\
\nUse this option only on quite new computers! \
\n\nContinue at own risk?"
case $? in
$DIALOG_OK)
f_radiolist "HDPARM" "Choose drive(!) to enable.\n\Z1\Zr\Zb(Use Space
Bar)\Zn\n\nExample: /dev/hda" "$partlist" 2> $tempfilehdparm
retvalhdparm=$?
choicehdparm=$(cat $tempfilehdparm)
case $retvalhdparm in
$DIALOG_OK)
hdparmdrive=/dev/$choicehdparm
hdparm -c3 -X66 $hdparmdrive >/tmp/hdparmout
f_textbox "HDPARM OUTPUT" /tmp/hdparmout;;
esac;;
esac;;

Page 215 of 245


"S: Special Commands")
f_specialopt;;
"X: Reboot/Poweroff")
f_rebootpoweroff;;
"F: ntpclient")
f_inputbox "Set Time using ntp server" "Enter ntp server ip or name" 2>$tempfilentpserver
ntpclient -s -h `cat $tempfilentpserver`
date
sleep 10;;
"E: keymap")
bkey
sleep 10;;
"C: ftp")
f_msgbox "start ftpd using busybox via tcpsvd" \
"Basic Anonymous FTP Server\nstartftpd script\nunloads if exit this script"
startftpd;;
"G: telnetd")
f_msgbox "Start telnetd server to allow telnet" \
"Telnet Server\n"
telnetd;;
"B: dmesg")
dmesg >$tempfiledmesg
f_textbox "Display dmesg output" $tempfiledmesg;;
"J: TestDisk-6.14")
testdisk-6.14;;
"L: TestDisk-7.0")
testdisk-7.0;;
"M: Validate Partition")
f_radiolist "VALIDATE" "Choose Partition to Validate\nUses f3write to fill partition then f3read
to test\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect from:" "$partlist" 2> /tmp/select
selection=`cat /tmp/select`
clear
mount /dev/$selection /mnt/local
f3write /mnt/local
f3read /mnt/local >/tmp/result
rm /mnt/local/*.fff
umount /mnt/local
f_textbox "Results of Validate Partition" /tmp/result;;
"H: Zero-Tool")

cleandrive8.dialog;;
##f_msgbox "ZERO-TOOL" "Removed this, since it was linked to the OS\
##\nbetter to use the cleandrive script on Unix/Linux\
##\nor the blank6.exe program for the FAT/NTFS\
##\npartitions."
## Delete Zeroing too, since it didn't always work at supporting various partitions
## The FAT would create the zero file, but not delete them. Better to use the other
## programs to do this job via the OS
## --radiolist "Choose drive to zero-out.\
##\nSupported FS are:\
##\next2. ext3, ext4, reiserfs - Linux\
##\nfat32 - Windows95/98/NT/2k/XP\

Page 216 of 245


##\nntfs - Windows NT/2k/XP\
##\n\nSelect partition (example: /dev/hda1):" 0 0 0 \
## $partlist 2> $tempfileutilzero
## retvalutilzero=$?
## choiceutilzero=$(cat $tempfileutilzero)
## case $retvalutilzero in
## $DIALOG_OK)
## zerodrive=$choiceutilzero
## mount /dev/$zerodrive /mnt/local >/tmp/zeromount 2>&1
## retvalzeromount=$?
## if [ $retvalzeromount != 0 ] ; then
## $DIALOG --backtitle "$backtitle" \
## --title "ERROR" \
## --textbox /tmp/zeromount 0 0
## zerodrive=""
## umount /mnt/local
##
## else
##
## freesize=`df |grep -w $zerodrive |awk '{print $4}'`
## pcnt=0
## msg for zeroing free space
## msg="$projectname is zeroing out free space.\n"
## (dd bs=1M if=/dev/zero 2>/dev/null |jetcat-mod -f 5000 -p $freesize 2>$progout |split -d
-b 1000m - /mnt/local/zerofile. 2>/dev/null ) &
## progress
## fi;;
## esac;;
"I: ddrescue")
retvalddres=0
while [ "$retvalddres" != "1" ]
do
d_ddrescue
retvalddres=$?
choiceddres=$(cat $tempfileddres)
case $retvalddres in
$DIALOG_OK)
case $choiceddres in
"Source")
f_radiolist "SELECT SOURCE" "Choose (defective) source drive to
clone.\n\Z1\Zr\Zb(Use Space Bar)\Zn\nSelect from:" "$partlist" 2> $tempfileddressource
retvalddressource=$?
choiceddressource=$(cat $tempfileddressource)
case $retvalddressource in
$DIALOG_OK)
ddressource=/dev/$choiceddressource
f_partdiskinfo $ddressource "DDRESCUE SOURCE DISK INFO";;
esac;;
"Target")
f_radiolist "SELECT TARGET" "Choose (new/clean) target drive to clone
to.\n\Z1\Zr\Zb(Use Space Bar)\Zn\
\nAttention: Select a drive with at least\

Page 217 of 245


\nthe same capacity. Higher capacity is OK.\
\nSelect from:" "$partlist" 2> $tempfileddrestarget
retvalddrestarget=$?
choiceddrestarget=$(cat $tempfileddrestarget)
case $retvalddrestarget in
$DIALOG_OK)
ddrestarget=/dev/$choiceddrestarget
f_partdiskinfo $ddrestarget "DDRESCUE TARGET DISK INFO";;
esac;;
"HELP")
f_msgbox "ddrescue Help Screen" "`ddrescue --help`";;
"Options")
f_inputbox "Options for ddrescue" "Options to add to ddrescue" 2>$tempfileddoptadd
ddoptadd=$(cat $tempfileddoptadd);;
"Rescue")
if [ "$ddressource" = "" ] ; then
f_msgbox "ERROR" "No source drive to rescue set!\nMust use SpaceBar to select
Disk\n->Back to Main Menu."
continue
fi
if [ "$ddrestarget" = "" ] ; then
f_msgbox "ERROR" "No target drive for rescue set!\nMust use SpaceBar to select
Disk\n->Back to Main Menu."
continue
fi
f_yesno "ABOUT TO RESCUE" "Collected information:\
\nDefective source drive: $ddressource\
\nNew/Clean target drive: $ddrestarget\
\n\nIt might take VERY long to rescue the drive,\
\nbut as long as you do NOT reboot, you can press\
\nCTRL-C at any time and dd_rhelp will continue\
\nfrom the same position it stopped if you re-enter\
\nthis menu. If dd_rhelp is almost done and is only\
\ntrying to read the defective sectors, it is OK to CTRL-C.\
\nNow using DDRESCUE, which has additional options\
\n\nAre you sure?"
case $? in
$DIALOG_OK)
clear
# dd_rhelp $ddressource $ddrestarget
script -c "ddrescue -f $ddoptadd $ddressource $ddrestarget" /tmp/ddrescue.out
tr -cd '\n -z' </tmp/ddrescue.out | sed 's/\[A//g' | sed 's/Copying non-tried blocks...//g'
>/tmp/ddrescue.out2
f_textbox "DDRESCUE RESULTS" /tmp/ddrescue.out2;;
esac;;
esac;;
esac
done;;
"K: Parted")
clear
f_radiolist "Parted" "Choose Disk for Parted to Process\n\Z1\Zr\Zb(Use Space
Bar)\Zn\nSelect from:" "$disklist" 2> /tmp/parted

Page 218 of 245


parted /dev/$(cat /tmp/parted);;
esac;;
esac
done;;
"Show Help")
f_textbox "HELP" /help;;
esac;;
$DIALOG_CANCEL)
f_msgbox "CANCEL OPTION" "Thanks for using $projectname. visit $website"
## Don't know about deleting all file from temp
## on the CD boot doesn't make a difference, but when I test
## the script on my regular Linux box, it is trying to delete
## things not related to $projectname
##rm /tmp/*
rm /tmp/test*
touch /tmp/out
touch /tmp/zeroout;;
$DIALOG_ESC)
echo "ESC pressed.";;
esac
done;;
$DIALOG_CANCEL)
exit 0;;
$DIALOG_ESC)
exit 0;;
esac

Page 219 of 245


6 scripts to help with getting front end
fg4l script downloads clear text script from ftp server public directory.

#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
## Modified 1/1/2007 to add $3 to use other script names.
: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

ftpipaddress=$1
filename=$3

if [ -z $ftpipaddress ]; then
$DIALOG --backtitle "Front-End Script to download options from FTP Server" \
--title "IP Address" --clear \
--inputbox "Provide IP address of FTP server\
\nwith front script\
\nExample: 192.168.0.5 \
\n\nEnter IP Address:" 0 0 2> /tmp/getip

retvalip=$?
case $retvalip in
$DIALOG_OK)
ftpipaddress=`cat /tmp/getip`
esac
fi

#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`

if [ -n "$2" ]; then
device=$2
fi
if [ -z $filename ]; then
filename="front"
fi
## new busybox changed ip address from field 4 to field 3
ipaddress=`udhcpc -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
/sbin/ifconfig $device $ipaddress up
ncftpget $ftpipaddress . $filename
chmod 755 $filename
./$filename
echo $ipaddress

Page 220 of 245


efg4l script downloads an encrypted script from ftp server public directory.

#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
## Modified 1/1/2007 to add $3 to use other script names.

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

ftpipaddress=$1
filename=$3

if [ -z $ftpipaddress ]; then
$DIALOG --backtitle "Front-End Script to download options from FTP Server" \
--title "IP Address" --clear \
--inputbox "Provide IP address of FTP server\
\nwith front script\
\nExample: 192.168.0.5 \
\n\nEnter IP Address:" 0 0 2> /tmp/getip

retvalip=$?
case $retvalip in
$DIALOG_OK)
ftpipaddress=`cat /tmp/getip`
esac
fi
#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`

if [ -n "$2" ]; then
device=$2
fi
if [ -z $filename ]; then
filename="front.bic"
fi
## new busybox changed ip address from field 4 to field 3
ipaddress=`udhcpc -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
/sbin/ifconfig $device $ipaddress up
ncftpget $ftpipaddress . $filename
bicode.o3 $filename front
chmod 755 front
./front
echo $ipaddress

Page 221 of 245


exg4l script that downloads encrypted script from users ftp directory

#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
## Modified 1/1/2007 to add $3 to use other script names.
## Modified 2/4/2007 to add $4 to use other userid password

## ./exg4l ipaddress device filename useridpass


## ./exg4l 192.168.0.1 eth0 front.bic '-u user -p password'
## ./exg4l 192.168.0.1 eth0 front.bic user:password

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

ftpipaddress=$1
filename=$3

useridpass="$4"
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi

if [ -z $ftpipaddress ]; then
$DIALOG --backtitle "Front-End Script to download options from FTP Server" \
--title "IP Address" --clear \
--inputbox "Provide IP address of FTP server\
\nwith front script\
\nExample: 192.168.0.5 \
\n\nEnter IP Address:" 0 0 2> /tmp/getip

retvalip=$?
case $retvalip in
$DIALOG_OK)
ftpipaddress=`cat /tmp/getip`
esac
fi
#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`

if [ -n "$2" ]; then
device=$2
fi
if [ -z $filename ]; then
filename="front.bic"

Page 222 of 245


fi
## new busybox changed ip address from field 4 to field 3
ipaddress=`udhcpc -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
/sbin/ifconfig $device $ipaddress up
ncftpget $useridpass $ftpipaddress . $filename
bicode.o3 $filename front
chmod 755 front
./front
echo $ipaddress

xg4l downloads front end script from user directory


#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
## Modified 1/1/2007 to add $3 to use other script names.
## Modified 2/4/2007 to add $4 to use other userid password

## ./xg4l ipaddress device filename useridpass


## ./xg4l 192.168.0.1 eth0 front '-u user -p password'
## ./xg4l 192.168.0.1 eth0 front user:password

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

ftpipaddress=$1
filename=$3
useridpass="$4"
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi

if [ -z $ftpipaddress ]; then
$DIALOG --backtitle "Front-End Script to download options from FTP Server" \
--title "IP Address" --clear \
--inputbox "Provide IP address of FTP server\
\nwith front script\
\nExample: 192.168.0.5 \
\n\nEnter IP Address:" 0 0 2> /tmp/getip

retvalip=$?
case $retvalip in
$DIALOG_OK)
ftpipaddress=`cat /tmp/getip`
esac
fi

Page 223 of 245


#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`

if [ -n "$2" ]; then
device=$2
fi
if [ -z $filename ]; then
filename="front"
fi
## new busybox changed ip address from field 4 to field 3
ipaddress=`udhcpc -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
/sbin/ifconfig $device $ipaddress up
ncftpget $useridpass $ftpipaddress . $filename
chmod 755 $filename
./$filename
echo $ipaddress

zxg4l download script from user ftp directory


#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
## Modified 1/1/2007 to add $3 to use other script names.
## Modified 2/4/2007 to add $4 to use other userid password

## ./zxg4l ipaddress device filename useridpass


## ./zxg4l 192.168.0.1 eth0 front.bic '-u user -p password'
## ./zxg4l 192.168.0.1 eth0 front.bic user:password

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

ftpipaddress=$1
filename=$3

useridpass=$4
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi

if [ -z $ftpipaddress ]; then
$DIALOG --backtitle "Front-End Script to download options from FTP Server" \
--title "IP Address" --clear \
--inputbox "Provide IP address of FTP server\
\nwith front script\

Page 224 of 245


\nExample: 192.168.0.5 \
\n\nEnter IP Address:" 0 0 2> /tmp/getip

retvalip=$?
case $retvalip in
$DIALOG_OK)
ftpipaddress=`cat /tmp/getip`
esac
fi
#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`

if [ -n "$2" ]; then
device=$2
fi

if [ -z $useridpass ]; then
$DIALOG --backtitle "$backtitle" \
--title "CONFIG USERIDPASS" --clear \
--inputbox "Enter userid and password option. \
\nExample: -u userx -p password \
\n or userx:password\
\n or leave blank for anonymous\
\n\nOptions:" 0 0 2> /tmp/getid

retvalnetname=$?
case $retvalnetname in
$DIALOG_OK)
useridpass=`cat /tmp/getid`
## Added to support user:password format conversion to ncftp format
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi
;;

$DIALOG_CANCEL)
;;

$DIALOG_ESC)
if test -s /tmp/getid ; then
useridpass=`cat /tmp/getid`
## Added to support user:password format conversion to ncftp format
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi
fi

Page 225 of 245


;;
esac
fi

if [ -z $filename ]; then
filename="front"
fi
## new busybox changed ip address from field 4 to field 3
ipaddress=`udhcpc -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
/sbin/ifconfig $device $ipaddress up
ncftpget $useridpass $ftpipaddress . $filename
chmod 755 $filename
./$filename
echo $ipaddress

zxeg4l script to download encrypted front-end form users ftp directory.

#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
## Modified 1/1/2007 to add $3 to use other script names.
## Modified 2/4/2007 to add $4 to use other userid password

## ./zexg4l ipaddress device filename useridpass


## ./zexg4l 192.168.0.1 eth0 front.bic '-u user -p password'
## ./zexg4l 192.168.0.1 eth0 front.bic user:password

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

ftpipaddress=$1
filename=$3

useridpass=$4
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi

if [ -z $ftpipaddress ]; then
$DIALOG --backtitle "Front-End Script to download options from FTP Server" \
--title "IP Address" --clear \
--inputbox "Provide IP address of FTP server\
\nwith front script\
\nExample: 192.168.0.5 \
\n\nEnter IP Address:" 0 0 2> /tmp/getip

retvalip=$?

Page 226 of 245


case $retvalip in
$DIALOG_OK)
ftpipaddress=`cat /tmp/getip`
esac
fi
#device=eth0
#Added ifcheck.sh by dan.s@hostdime.com
#to handle systems with multiple nics and eth0 not default
device=`cat /tmp/device`

if [ -n "$2" ]; then
device=$2
fi

if [ -z $useridpass ]; then
$DIALOG --backtitle "$backtitle" \
--title "CONFIG USERIDPASS" --clear \
--inputbox "Enter userid and password option. \
\nExample: -u userx -p password \
\n or userx:password\
\n or leave blank for anonymous\
\n\nOptions:" 0 0 2> /tmp/getid

retvalnetname=$?
case $retvalnetname in
$DIALOG_OK)
useridpass=`cat /tmp/getid`
## Added to support user:password format conversion to ncftp format
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi
;;

$DIALOG_CANCEL)
;;

$DIALOG_ESC)
if test -s /tmp/getid ; then
useridpass=`cat /tmp/getid`
## Added to support user:password format conversion to ncftp format
if [ -n "$useridpass" ]; then
if [ `echo $useridpass | awk '{print $1;}' -` != "-u" ] ; then
useridpass=`echo $useridpass | awk -F: '{print "-u " $1 " -p " $2;}' -`
fi
fi
fi
;;
esac
fi

Page 227 of 245


if [ -z $filename ]; then
filename="front.bic"
fi
## new busybox changed ip address from field 4 to field 3
ipaddress=`udhcpc -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
/sbin/ifconfig $device $ipaddress up
ncftpget $useridpass $ftpipaddress . $filename
bicode.o3 $filename front
chmod 755 front
./front
echo $ipaddress

rcS G4L linux boot up script.

#!/bin/sh
#Script to be executed by busybox at bootup
#
#Modify to your needs
#

echo "Re-mounting / with read-write permissions"


/bin/mount -n -o remount,rw /

echo "Mounting /proc"


/bin/mount -t proc proc /proc

/bin/mount -n -o remount,rw /
## Added 5/2/2008 testing mdev to create devices
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
## Added 5/12/2013 as part of adding firmware support
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

echo "Not loading any keymap -> US Layout"


#if NON english, load binary(!!) keymap here
#shipped keymap is german.
#/sbin/loadkmap < /var/lib/kbd/keymap.map

echo "Setting Hostname"


#set hostname to whatever you want, does not
#matter

/bin/hostname g4l
# Changed to have it test for file exist

if [ -e /etc/mtab ];
then
echo "/etc/mtab exists"
else

Page 228 of 245


/bin/ln -s /proc/mounts /etc/mtab
fi
## 5/23/2008 added to recognize devices
echo /bin/mdev >/proc/sys/kernel/hotplug
## 3/21/2011 added to elimante pop up messages
klogd -c 4
chkrun=`cat /proc/cmdline | grep run`;
export NCURSES_NO_UTF8_ACS=70
if [ -z "$chkrun" ] ; then
dialog --pause "10 second pause to let everything finish loading\n\
Would appreciate getting Feedback\n(Good or Bad)\nmikes@kuentos.guam.net" 12 52 10

## 4/29/2008 added timeout so script will continue


dialog --timeout 30 --textbox /disclaim 24 79 2>/dev/null
dialog --timeout 30 --textbox /instruct 0 0 2>/dev/null
dialog --timeout 30 --textbox /latest 0 0 2>/dev/null
dialog --timeout 30 --textbox /AES-sshfs 0 0 2>/dev/null
firmout=`dmesg | grep -i firmware |grep -v "(without firmware)" | grep -v "'firmware': registering"`
if [ -n "$firmout" ] ; then
echo -e "Firmware lines from dmesg\nIf any errors, Please contact
mikes@kuentos.guam.net\n\n$firmout" >/tmp/firmout
dialog --timeout 30 --textbox /tmp/firmout 0 0 2>/dev/null
fi
fi
##device=eth0
## change 6/23/2007 new busybox shifted ip to field 3 instead of 4
##ipaddress=`udhcpc -n -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
##if [ -n $ipaddress ]; then
##/sbin/ifconfig $device $ipaddress up
##else
## ipaddress=`udhcpc -n -i $device -s/udhcpc.sh|grep Lease|cut -d\ -f3`
## sleep 3
##/sbin/ifconfig $device $ipaddress up
##fi
##echo IP Address is: $ipaddress
## added 6/17/2008 checks for eth? multi-devices
## activates first one that gets a link from dhcp
nodhcp=`cat /proc/cmdline | grep nodhcp`
if [ -z "$nodhcp" ] ; then
/ifcheck2.sh
else
/sbin/ifconfig eth0 `cat /proc/cmdline | sed -e 's/ /\n/g' | grep nodhcp | cut -f2 -d\= ` up
echo eth0 >/tmp/device
fi
/testcd
## 4/29/2008 added to load telnetd if kernel boot parameter
## telnetd=yes is found
telnetd=`cat /proc/cmdline | grep telnetd`;
if [ -n "$telnetd" ] ; then
telnetd
fi
mdev -s

Page 229 of 245


vgchange -a y
if [ -z "$chkrun" ] ; then
bkey
fi
##echo "Enter g4lmenu"

Bkey script to set keyboard map

#!/bin/bash
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}
: ${DIALOG_ERROR=255}

dialog --backtitle "G4L keymap selection" --title "Select Keymap" \


--timeout 30 --begin 2 10 \
--radiolist "Use Space Bar to Select and Enter or \
\nwill default to US after 30 seconds" 0 50 14 \
"us/us-acentos.bmap" "US" OFF \
"us/us.bmap" "US" ON \
"be/be-latin1.bmap" "BE" OFF \
"bg/bg_bds-cp1251.bmap" "BG" OFF \
"bg/bg_bds-utf8.bmap" "BG" OFF \
"bg/bg-cp1251.bmap" "BG" OFF \
"bg/bg-cp855.bmap" "BG" OFF \
"bg/bg_pho-cp1251.bmap" "BG" OFF \
"bg/bg_pho-utf8.bmap" "BG" OFF \
"br/br-abnt2.bmap" "BR" OFF \
"br/br-abnt.bmap" "BR" OFF \
"br/br-latin1-abnt2.bmap" "BR" OFF \
"br/br-latin1-us.bmap" "BR" OFF \
"by/by.bmap" "BY" OFF \
"cf/cf.bmap" "CF" OFF \
"colemak/en-latin9.bmap" "COLEMAK" OFF \
"croat/croat.bmap" "CROAT" OFF \
"cz/cz.bmap" "CZ" OFF \
"cz/cz-cp1250.bmap" "CZ" OFF \
"cz/cz-lat2.bmap" "CZ" OFF \
"cz/cz-lat2-prog.bmap" "CZ" OFF \
"cz/cz-qwertz.bmap" "CZ" OFF \
"cz/cz-us-qwertz.bmap" "CZ" OFF \
"de/de.bmap" "DE" OFF \
"de/de_CH-latin1.bmap" "DE" OFF \
"de/de-latin1.bmap" "DE" OFF \
"de/de-latin1-nodeadkeys.bmap" "DE" OFF \
"dk/dk-latin1.bmap" "DK" OFF \
"dvorak/ANSI-dvorak.bmap" "DVORAK" OFF \
"dvorak/dvorak.bmap" "DVORAK" OFF \
"dvorak/dvorak-l.bmap" "DVORAK" OFF \
"dvorak/dvorak-r.bmap" "DVORAK" OFF \
"es/es.bmap" "ES" OFF \

Page 230 of 245


"es/es-cp850.bmap" "ES" OFF \
"et/et.bmap" "ET" OFF \
"et/et-nodeadkeys.bmap" "ET" OFF \
"fi/fi-latin1.bmap" "FI" OFF \
"fr/azerty.bmap" "FR" OFF \
"fr/fr.bmap" "FR" OFF \
"fr/fr_CH.bmap" "FR" OFF \
"fr/fr_CH-latin1.bmap" "FR" OFF \
"fr/fr-latin1.bmap" "FR" OFF \
"fr/fr-latin9.bmap" "FR" OFF \
"fr/fr-pc.bmap" "FR" OFF \
"gr/gr.bmap" "GR" OFF \
"gr/gr-pc.bmap" "GR" OFF \
"hu/hu101.bmap" "HU" OFF \
"hu/hu.bmap" "HU" OFF \
"il/il.bmap" "IL" OFF \
"il/il-heb.bmap" "IL" OFF \
"il/il-phonetic.bmap" "IL" OFF \
"is/is-latin1.bmap" "IS" OFF \
"is/is-latin1-us.bmap" "IS" OFF \
"it/it2.bmap" "IT" OFF \
"it/it.bmap" "IT" OFF \
"it/it-ibm.bmap" "IT" OFF \
"jp/jp106.bmap" "JP" OFF \
"la/la-latin1.bmap" "LA" OFF \
"lt/lt.baltic.bmap" "LT" OFF \
"lt/lt.bmap" "LT" OFF \
"lt/lt.l4.bmap" "LT" OFF \
"mk/mk0.bmap" "MK" OFF \
"mk/mk.bmap" "MK" OFF \
"mk/mk-cp1251.bmap" "MK" OFF \
"mk/mk-utf.bmap" "MK" OFF \
"nl/nl2.bmap" "NL" OFF \
"nl/nl.bmap" "NL" OFF \
"no/no-latin1.bmap" "NO" OFF \
"pc/pc110.bmap" "PC" OFF \
"pl/pl1.bmap" "PL" OFF \
"pl/pl2.bmap" "PL" OFF \
"pl/pl3.bmap" "PL" OFF \
"pl/pl4.bmap" "PL" OFF \
"pl/pl.bmap" "PL" OFF \
"pt/pt-latin1.bmap" "PT" OFF \
"pt/pt-latin9.bmap" "PT" OFF \
"ro/ro_win.bmap" "RO" OFF \
"ru/ru_win.bmap" "RU" OFF \
"se/se-fi-ir209.bmap" "SE" OFF \
"se/se-fi-lat6.bmap" "SE" OFF \
"se/se-ir209.bmap" "SE" OFF \
"se/se-lat6.bmap" "SE" OFF \
"sg/sg.bmap" "SG" OFF \
"sg/sg-latin1.bmap" "SG" OFF \
"sg/sg-latin1-lk450.bmap" "SG" OFF \

Page 231 of 245


"sk/sk-prog-qwerty.bmap" "SK" OFF \
"sk/sk-prog-qwertz.bmap" "SK" OFF \
"sk/sk-qwerty.bmap" "SK" OFF \
"sk/sk-qwertz.bmap" "SK" OFF \
"slovene/slovene.bmap" "SLOVENE" OFF \
"sr/sr-cy.bmap" "SR" OFF \
"sv/sv-latin1.bmap" "SV" OFF \
"tr/tralt.bmap" "TR" OFF \
"tr/trf.bmap" "TR" OFF \
"tr/tr_f-latin5.bmap" "TR" OFF \
"tr/trq.bmap" "TR" OFF \
"tr/tr_q-latin5.bmap" "TR" OFF \
"ua/ua.bmap" "UA" OFF \
"ua/ua-utf.bmap" "UA" OFF \
"ua/ua-utf-ws.bmap" "UA" OFF \
"ua/ua-ws.bmap" "UA" OFF \
"uk/uk.bmap" "UK" OFF \
"wangbe/wangbe2.bmap" "WANGBE" OFF \
"wangbe/wangbe.bmap" "WANGBE" OFF 2>/tmp/keymap
retval=$?
mapfile=`cat /tmp/keymap`
if [ "$retval" = "$DIALOG_ERROR" ] ; then
echo "Using US MAP"
loadkmap < /bkeymaps/us/us.bmap
else
echo /bkeymaps/$mapfile
loadkmap < /bkeymaps/$mapfile
fi
rm /tmp/keymap

Cleandrive8 script to clear free space on partitions

#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
pcnt=0
JETCAT=`which jetcat-mod `
if [ $? = "0" ] ; then echo $JETCAT
else JETCAT="/jetcat-mod"
fi

progress()
{
(
while [ "$pcnt" != "$value" ]
do

printf "%s\n" "XXX"


## Modified Jetcat-mod to display two decimal positions

Page 232 of 245


## have to cut off the decimals for the gauge to work.
if [ "$value" = "100" ]; then
pcnt=`tail -n1 /tmp/progress.out`
pcnt2=`tail -n1 /tmp/progress.out | cut -d. -f 1 `
if [ "$DIALOG" = "dialog" ]; then
printf "%s\n" $pcnt2
fi
fi
if [ "$value" != "100" ]; then
if [ " " = "$testx" ]; then
pcnt=`df . | grep % | grep / | awk '{print $4}'`
else
pcnt=`df . | grep % | grep / | awk '{print $5}'`
fi
if [ "$DIALOG" = "dialog" ]; then
echo $pcnt | cut -d% -f 1
fi
# printf "%s\n" $pcnt
fi
printf "%s\n" "\n"
## msg variable set before calling the progress function to
## make minor variation between different screens.
printf "%s\n" "$msg"; printf "%s\n" "\n"
printf "%s\n" "\n"
printf "%s\n" "The progress bar shows the percentage of the amount written";
if [ "$DIALOG" = "Xdialog" ]; then
printf "%s\n" "\n"
fi
printf "%s\n" "to the size of the destination."; printf "%s\n" "\n";
printf "%s\n" "Please stand by, this will take some time!"; printf "%s\n" "\n"; printf "%s\n" "\n"
## Percentage displays with 2 decimal places, plus start time and current time.
## This lets one check time status of process in addition to percentage
printf "%s\n" "Progress"; printf "%s\n" "\n"
printf "%s\n" "$pcnt"; printf "%s\n" "\n"
printf "%s\n" "XXX";
printf "%s\n" "$pcnt"
sleep 5
done
)|
$DIALOG --backtitle "$backtitle" --title "Working..." --clear --gauge "One moment..." 30 100
rm /tmp/progress.out
touch /tmp/progress.out
## Added a pause to let the user see final results before it returns.
}

xdyes=`which Xdialog`
dyes=`which dialog`
if [ -n "$DISPLAY" ] ; then
DIALOG="Xdialog"
else
DIALOG="dialog"
fi

Page 233 of 245


if [ -z "$xdyes" ]; then
if [ "$DIALOG" = "Xdialog" ] ; then
DIALOG="dialog"
fi
fi
if [ -z "$dyes" ]; then
if [ "$DIALOG" = "dialog" ] ; then
DIALOG=""
fi
fi
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

backtitle="Program to clear free space"


msg="Clearing Free Space on "`pwd`
value="100"
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`
original=`df . | grep % | grep / | awk '{print $4}'`
testx=`df . | grep % | grep / | cut -b1-1`
if [ " " = "$testx" ]; then
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`
original=`df . | grep % | grep / | awk '{print $4}'`
else
freesize=`df . | grep % | grep / | awk '{print $2 - $3}'`
original=`df . | grep % | grep / | awk '{print $5}'`
fi
printf "%s\n" "$freesize $original"

dd if=/dev/zero bs=2M 2>/dev/null | $JETCAT -f 5000 -p $freesize 2>/tmp/progress.out >0bits &


progress
value=$original
msg="Removing 0bits file"
if [ "$DIALOG" = "Xdialog" ]; then
$DIALOG --infobox "PAUSE FOR 10 SECONDS" 5 35 10000
else
$DIALOG --sleep 10 --infobox "PAUSE FOR 10 SECONDS" 5 25
fi

rm 0bits &
progress
if [ "$DIALOG" = "Xdialog" ]; then
$DIALOG --infobox "Drive Should now have all free space cleared" 5 60 10000
else
$DIALOG --sleep 10 --infobox "Drive Should now have all free space cleared" 5 50
fi

Page 234 of 245


Cleandrive8.dialog Script to prompt to clear free space

#!/bin/sh
#
#
## Michael Setzer II - Program Modifications
DIALOG="dialog"
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

pcnt=0
JETCAT=`which jetcat-mod `
if [ $? = "0" ] ; then echo $JETCAT
else JETCAT="/jetcat-mod"
fi
if [ ! -d /mnt/local ] ; then
mkdir /mnt ;
mkdir /mnt/local ;
dialog --timeout 10 --msgbox "Needs /mnt/local directory\n(10 second timeout)" 0 0
fi
f_radiolist()
{
$DIALOG --backtitle "$backtitle" --title "$1" --radiolist "$2" 0 0 0 $3
}
f_textbox()
{
$DIALOG --clear --backtitle "$backtitle" --title "$1" --textbox $2 0 0
}
#Updated part_info and part_info2 to match with g4l30o10 scripts version 11/25/2011
part_info()
{
# parse info about devices to tempfiles
## original netdevices=`cat /proc/net/dev |grep eth |sed -e 's/://g' |awk '{print $1}'`
## Change1 netdevices=`cat /proc/net/dev |grep eth |sed -e 's/:/ /g' |awk '{print $1}'`
## Changed to terminate at the colon since after some options, a number was getting added
## to the eth0:
netdevices=`grep eth </proc/net/dev |cut -d: -f 1`
partitions=`grep .d </proc/partitions |awk '{print $4}'`
# write systeminfo file
printf "========================================\n" > /tmp/sysinfo
printf "Drive/Partition sizes:\n" >> /tmp/sysinfo
grep .d </proc/partitions | awk '{print $4,$3}' |sort >>/tmp/sysinfo

printf "\nDrive models:\n" >> /tmp/sysinfo


for h in $partitions
do
length=`echo $h |wc -c`
if [ $length -lt 5 ]; then
echo $h >> /tmp/sysinfo
cat /proc/ide/$h/model >> /tmp/sysinfo 2>/dev/null

Page 235 of 245


fi
done
### 2008/5/27 New partlist to have size and partitiion type.
partlist="";
partonly="";
### 2009/3/15 New disklist to have just disks without partitions
disklist="";
fdisk -l 2>/dev/null | grep /dev | grep -v Disk | sed s/*/\ / | awk '{print $1,$6$7$8}' | cut -b6-30
>/tmp/partout
grep .d </proc/partitions | awk '{print $4,$3}' >/tmp/sysinfo2
while read LINE
do
xxdev=`echo $LINE | cut -f1 -d\ `;
xxsize=`echo $LINE | cut -f2 -d\ `;
xxsize2=`echo ${#xxsize}`;
pad="";
a=$xxsize2;
while [ $a -le 12 ]
# for (a=xxsize2;a<=12;a++) Doesn't work on new bash?
do
pad=$pad\_;
a=$(($a + 1));
done
xxtype="";
xxtype=`grep $xxdev\ </tmp/partout 2>/dev/null | cut -f2 -d\ `;
if [ -z $xxtype ]; then
xxtype="DISK";
### 2009/3/15 New disklist to have just disks without partitions
disklist="$disklist `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
fi
partlist="$partlist `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
if [ "$xxtype" != "DISK" ] ; then
partonly="$partonly `printf "%s %s%s--%s off" $xxdev $pad $xxsize $xxtype `";
fi
done </tmp/sysinfo2
printf "\nblkid info:\n" >> /tmp/sysinfo
blkid >> /tmp/sysinfo
printf "\nfsarchiver probe info:\n\n" >> /tmp/sysinfo
fsarchiver probe -v 2>> /tmp/sysinfo
cat /tmp/sysinfo | sed -e 's/\] \[/\|/g' >/tmp/sysinfo3
mv /tmp/sysinfo3 /tmp/sysinfo
### End of addition
FSARCH=`which fsarchiver `
if [ $? = "0" ] ; then
### Added since part_info2 doesn't seem to support /dev/cciss partitions.
# testcciss=`echo $disklist | grep "/dev/cciss"`
# if [ -z "$testcciss" ] ; then
part_info2
# fi
fi
}
part_info2()

Page 236 of 245


{
partonly="";
partlist="";
disklist="";
#LC_ALL=C added since regular sort was sorting sda after sda# options.
#busybox sort works correctly, but if one uses script on anther version
#it might sort incorrectly. dm stuff added to put lvm partition at end.
## Added -e 's-!-/-g' to change cciss!c0d0p0 to cciss/c0d0p0 and others.
fsarchiver probe -v 2>&1 | grep -v = | grep \\[ | sed 's/dm/zz/g' | LC_ALL=C sort | sed -e 's/ /@/g' -e
's/zz/dm/g' -e 's-!-/-g' >/tmp/sysinfo2
while read LINE
do
xxdev=`echo $LINE | cut -b2-17 | sed 's/@//g' `;
xxdev2=`echo $LINE | cut -b2-3`;
xxsize=`echo $LINE | cut -b55-66 | sed 's/@//g'`;
xxtype=`echo $LINE | cut -b21-31 `;
xxtype2=`echo $LINE | cut -b32-32 `;
xxuuid=`echo $LINE | cut -b121-158 `;
if [ "$xxtype2" != "]" ] ; then
xxtype=`echo $LINE | cut -b21-51 `;
xxuuid=`hdparm -i /dev/$xxdev 2>/dev/null | grep SerialNo | sed -e 's/.*SerialNo=//' -e 's/ //g' `
fi
pad="";
a=`echo ${#xxsize}`;
while [ $a -le 10 ]
do
pad=$pad\_;
a=$(($a + 1));
done
if [ "$xxdev2" = "dm" ]; then
xxtype="LVM2_"$xxtype;
fi
if [ "$xxtype2" != "]" ]; then
disklist="$disklist `printf "%s %s%s--%s-%s off" $xxdev $pad $xxsize $xxtype $xxuuid`";
fi
partlist="$partlist `printf "%s %s%s--%s-%s off" $xxdev $pad $xxsize $xxtype $xxuuid`";
if [ "$xxtype2" = "]" ] ; then
partonly="$partonly `printf "%s %s%s--%s-%s off" $xxdev $pad $xxsize $xxtype $xxuuid`";
fi
done </tmp/sysinfo2
partonly=`echo $partonly | sed 's/@//g'`
partlist=`echo $partlist | sed 's/@//g'`
disklist=`echo $disklist | sed 's/@//g'`
if [ -z "$partonly" ] ; then
partonly="none no_partitions off";
fi
if [ -z "$partlist" ] ; then
partlist="none no_partitions off";
fi
if [ -z "$disklist" ] ; then
disklist="none no_disks off";
fi

Page 237 of 245


}

progress()
{
(
while [ "$pcnt" != "$value" ]
do

printf "%s\n" "XXX"


## Modified Jetcat-mod to display two decimal positions
## have to cut off the decimals for the gauge to work.
if [ "$value" = "100" ]; then
pcnt=`tail -n1 /tmp/progress.out`
pcnt2=`tail -n1 /tmp/progress.out | cut -d. -f 1 `
printf "%s\n" $pcnt2
fi
if [ "$value" != "100" ]; then
if [ " " = "$testx" ]; then
pcnt=`df . | grep % | grep / | awk '{print $4}'`
else
pcnt=`df . | grep % | grep / | awk '{print $5}'`
fi
echo $pcnt | cut -d% -f 1
# printf "%s\n" $pcnt
fi
printf "%s\n" "\n"
## msg variable set before calling the progress function to
## make minor variation between different screens.
printf "%s\n" "$msg"; printf "%s\n" "\n"
printf "%s\n" "\n"
printf "%s\n" "The progress bar shows the percentage of the amount written";
printf "%s\n" "to the size of the destination."; printf "%s\n" "\n";
printf "%s\n" "Please stand by, this might take some time!"; printf "%s\n" "\n"; printf "%s\n" "\n"
## Percentage displays with 2 decimal places, plus start time and current time.
## This lets one check time status of process in addition to percentage
printf "%s\n" "Progress"; printf "%s\n" "\n"
printf "%s\n" "$pcnt"; printf "%s\n" "\n"
printf "%s\n" "XXX";
printf "%s\n" "$pcnt"
sleep 5
done
)|
$DIALOG --backtitle "$backtitle" --title "Working..." --clear --gauge "One moment..." 22 75
rm /tmp/progress.out
touch /tmp/progress.out
## Added a pause to let the user see final results before it returns.
}

backtitle="Program to clear free space"


part_info

f_radiolist "PICK DRIVE" "Choose drive to write to/read from.\n(Use Space Bar)\

Page 238 of 245


\nThe drive that contains or will contain the image\
\nSupported FS are:\
\next2. ext3, ext4, reiserfs - Linux\
\nfat32 - Windows95/98/NT/2k/XP\
\nntfs - Windows NT/2k/XP\
\n\nSelect partition (example: /dev/hda1):" "$partonly" 2> /tmp/filelocaldrive
retvallocaldrive=$?
choicelocaldrive=$(cat /tmp/filelocaldrive)
if [ -n "$choicelocaldrive" ]; then
case $retvallocaldrive in
$DIALOG_OK)
localdrive=$choicelocaldrive
###
umount /mnt/local 2>/dev/null
chkswap=`blkid /dev/$localdrive | grep swap`
mount /dev/$localdrive /mnt/local >/tmp/mount 2>&1
retvalmount=$?
if [ $retvalmount != 0 ] ; then
if [ -z chkswap ]; then
f_textbox "ERROR" /tmp/mount
fi
umount /mnt/local 2>/dev/null
if [ -n chkswap ]; then
echo "Clearing SWAP partition"
BLKID2=`blkid /dev/$localdrive | cut -f 2 -d\:`
LABEL=""
UUID=""
for a in $BLKID2
do
export $a
done
LABEL=`echo $LABEL | tr -d \"`
UUID=`echo $UUID | tr -d \"`
dd if=/dev/zero bs=20M of=/dev/$localdrive
mkswap /dev/$localdrive -U $UUID -L "$LABEL"
echo "Done"
sleep 10
fi
localdrive=""
umount /mnt/local 2>/dev/null
else
cd /mnt/local
chkvfat=`blkid /dev/$localdrive | grep vfat`
if [ -z "$chkvfat" ]; then
{
msg="Clearing Free Space on /dev/$localdrive"
value="100"
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`
original=`df . | grep % | grep / | awk '{print $4}'`
testx=`df . | grep % | grep / | cut -b1-1`
if [ " " = "$testx" ]; then
freesize=`df . | grep % | grep / | awk '{print $1 - $2}'`

Page 239 of 245


original=`df . | grep % | grep / | awk '{print $4}'`
else
freesize=`df . | grep % | grep / | awk '{print $2 - $3}'`
original=`df . | grep % | grep / | awk '{print $5}'`
fi
printf "%s\n" "$freesize $original"

dd if=/dev/zero bs=2M 2>/dev/null | $JETCAT -f 5000 -p $freesize 2>/tmp/progress.out >0bits &


progress
cat /tmp/progress.out
# value=$original
# msg="Removing 0bits file"
# $DIALOG --sleep 10 --infobox "PAUSE FOR 10 SECONDS" 5 25
$DIALOG --sleep 10 --infobox "REMOVING 0bits FILE" 5 25
rm 0bits #&
# progress
}
else
lblank7
fi

$DIALOG --sleep 10 --infobox "Drive Should now have all free space cleared" 5 50
fi;;
esac
cd /
umount /mnt/local 2>/dev/null
fi

Startftpd Script to start ftp deamon


tcpsvd -vE 0.0.0.0 21 ftpd -w -v / 2>/var/log/tcpsvd.log &

Page 240 of 245


xprogress script that runs progress from main g4l script.
Can be run in separate terminal windows, or via a telnet connection.

#!/bin/bash
#
#
## Michael Setzer II - Program Modifications
pcnt=0

## Created a function for the Progress Screen instead of multiple


## copies using multiply files. Just setup 1 function with a msg variable
## to set the minor differnces between earlier versions.

progress()
{
## Added a redirection of stderr from ncftp commands.
## Would get an error message rarely about a register 82 problem with duplex
## mismatch. This error would message the contents of the screen, but the updates
## of the progress would go on. Redirects output to file, and then displays last
## two lines of the file.
## This just sets the starting value as being OK

echo "OK" >/tmp/ncftpstatus.out


## Added the Start time of the process to the progress screen
## Removed - Replaced with modification to jetcat-mod to
## Display MBs of data transferred of total, and Elapsed time.
## starttime=`date +%T`
(
while test "$pcnt" != "100"
do
## changed to a common progress.out file for all progress
pcnt=`tail -n1 /tmp/progress.out`
echo "XXX"
## Modified Jetcat-mod to display two decimal positions
## have to cut off the decimals for the gauge to work.
echo $pcnt | cut -d. -f 1
echo "\n"
## msg variable set before calling the progress function to
## make minor variation between different screens.
echo "Progress\n"
echo "The progress bar shows the percentage of the amount written\n"
echo "to the size of the destination.\n\n"
echo "Please stand by, this will take some time!\n\n"
## Percentage displays with 2 decimal places, plus start time and current time.
## This lets one check time status of process in addition to percentage
echo "Progress"
echo "$pcnt\n"
## Removed Current time and Start time for modified jetcat-mod
##echo "Current Time: `date +%T`"
##echo "Start Time: $starttime"

Page 241 of 245


## add display of last four lines of ncftp stderr if any.
echo -n "ncftpstatus: "
ncftpstatus=`tail -n4 /tmp/ncftpstatus.out`
echo $ncftpstatus
echo "XXX"
sleep 5
done
)|
$DIALOG --backtitle "$backtitle" --title "Working..." --clear --gauge "One moment..." 20 70
## Outputs start time and current time, so it can be checked if one isn't around at end
## of process. Also, note one can use Ctrl-Alt F2 to switch to another screen to review
## the file contents or use the special command option.
## Added a pause to let the user see final results before it returns.
}

: ${DIALOG=dialog}
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_ESC=255}

progress

Page 242 of 245


Advance startup Options
Start telnet server at boot up
Adding the telnetd=yes line to the kernel append line.
This causes the rcS file to automatically start the telnet deamon, so machine can be accessed via
telnet.
Note putty works much better than regular telnet.
KERNEL bz4x10.4
APPEND initrd=ramdisk.lzma root=/dev/ram0 telnetd=yes

Run Commands on Starup


Option to have the g4l automatically run commands or a set of commands via the g4lmenu script
Just like the above telnetd option the run=command(s) can be added to the append line, and this
can work with syslinux, grub, and grub4dos.
Note: with syslinux you can use the && to string commands together, but grub4dos doesn't work with
the &&, so using CR will do the same.
This can be used to automate a backup or restore, but one must fully understand all the commands
and settings.
### 12/31/20008 added to allow running command from grub
### add run="command line" to the grub line
### creates /tmp/runcmd to stop running twice.
### added sed CR filtering to allow multi-line commands
### run="command1CRcommand2CRcommand3"
if [ ! -s "/tmp/runcmd" ] ; then
cat /proc/cmdline | grep run | cut -d\" -f 2 | sed -e 's/CR/\n/g' >/tmp/runcmd;
if [ -s /tmp/runcmd ] ; then
grub2fix=`cat /tmp/runcmd | cut -b1-3`
if [ "$grub2fix" = "run" ] ; then
cat /tmp/runcmd | cut -b 5-256 > /tmp/runcmd2
mv /tmp/runcmd2 /tmp/runcmd
fi
sh /tmp/runcmd
sleep 10;
fi
fi

Example: That automatically restores and NTFSCLONE image of XP partition


title G4L Restore XP
kernel /bz3x8.4 ramdisk_size=65536 root=/dev/ram0 telnetd=yes run="mount
/dev/sda6 /mnt/local && cd /mnt/local && ./reimagexp "
initrd /ramdisk.lzma

reimage script.
lzop -d -c d7-xp.lzo | ntfsclone -r --overwrite /dev/sda1 -
sleep 10
reboot

Page 243 of 245


Convert G4L from CD setup to flash setup
The files can be copied from a linux cd to a flash, and then syslinux can be installed onto the flash.
If the same version of syslinux as isolinux is used that should probable be enough.
It the versions are different, then one also needs to copy the matchining .c32 files.

The syslinux file is included on the CD image.

Note: One can also copy the files from the iso image file by using a program like isomaster.

Convert G4L from CD setup to PXE setup


With my dhcpd server, the process that I did was similar process, but one would have to have a
complete understanding of there PXE setup.

Copied the files from the CD to the /tftpdboot directory or just copy one kernel file and ramdisk.lzma.
Copy the isolinux fle to the /tftpboot/pxelinux.cfig directory as default or a specific pxe name.
The complete configuration file can be copied, or just the exact kernel options.

Page 244 of 245


Special Setup Files for G4L
G4L-WIN.EXE Self extracting 7z file for Windows setup
ftp://amd64gcc.dyndns.org/g4l0.44alpha/g4l-win.exe
G4L-win.exe contains grub4dos and can be used to boot the g4l from a windows ntfs system.
On windows XP, one can extract the files to the C:\ and make minor addition to boot.ini.
With Vista and 7 there are additional issues that have to be done.
The boot manager was to be renamed, and grub4dos needs to become the default manager.
Also, the security options, generally require more steps to be able to extract to the C:\ disk and
making the changes to the boot process.
For Server 2008, the files have to be extracted to the boot partition and the same renaming of the
boot manager.

There are some basic text files that include some instructions, would like to have an install process
that would make it automatic, but have not found a method yet.
The current file contains the following files.
MENU.LST
GRLDR
COPYING.TXT
GRUB.TXT
LINUX
LINUX/bz3x8.4
LINUX/ramdisk.lzma
LINUX/MEMTEST
DOC
G4LLINUX.TXT
RIPLINUX.TXT

G4L-Lite.7z and G4L-lite.zip


ftp://amd64gcc.dyndns.org/g4l0.44alpha/g4l-lite.7z
ftp://amd64gcc.dyndns.org/g4l0.44alpha/g4l-lite.zip

These are the exact same files in 7z and Zip format for someone that might want to setup g4l in an
existing grub, grub4dos, lilo, or any of the syslinux boot option. Perhaps even with other boot loaders.
For the most part, only the kernel file bz3x8.4 (lastest full released) and the ramdisk.lzma (filesystem).

Page 245 of 245

You might also like