diff --git a/appliances/firefox.gns3a b/appliances/firefox.gns3a index cf0b563..35217fe 100644 --- a/appliances/firefox.gns3a +++ b/appliances/firefox.gns3a @@ -17,12 +17,21 @@ "adapters": 1, "ram": 256, "arch": "i386", - "console_type": "vnc" + "console_type": "vnc", + "options": "-vga std -usbdevice tablet" }, "images": [ + { + "filename": "linux-tinycore-linux-6.4-firefox-33.1.1-2.img", + "version": "31.1.1~2", + "md5sum": "8db0d8dc890797cc335ceb8aaf2255f0", + "filesize": 93257728, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/linux-tinycore-linux-6.4-firefox-33.1.1-2.img" + }, { "filename": "linux-tinycore-linux-6.4-firefox-33.1.1.img", - "version": "31.1.1", + "version": "31.1.1~1", "md5sum": "9e51ad24dc25c4a26f7a8fb99bc77830", "filesize": 82313216, "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", @@ -31,7 +40,13 @@ ], "versions": [ { - "name": "31.1.1", + "name": "31.1.1~2", + "images": { + "hda_disk_image": "linux-tinycore-linux-6.4-firefox-33.1.1-2.img" + } + }, + { + "name": "31.1.1~1", "images": { "hda_disk_image": "linux-tinycore-linux-6.4-firefox-33.1.1.img" } diff --git a/appliances/tinycore-linux.gns3a b/appliances/tinycore-linux.gns3a index 5514170..845a8e0 100644 --- a/appliances/tinycore-linux.gns3a +++ b/appliances/tinycore-linux.gns3a @@ -18,9 +18,18 @@ "adapters": 1, "ram": 96, "arch": "i386", - "console_type": "vnc" + "console_type": "vnc", + "options": "-vga std -usbdevice tablet" }, "images": [ + { + "filename": "linux-tinycore-6.4-2.img", + "version": "6.4", + "md5sum": "dcbb5318c3e18ab085088d4474d8de85", + "filesize": 36503552, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/linux-tinycore-linux-6.4-2.img" + }, { "filename": "linux-tinycore-6.4.img", "version": "6.4", @@ -32,7 +41,13 @@ ], "versions": [ { - "name": "6.4", + "name": "6.4~2", + "images": { + "hda_disk_image": "linux-tinycore-6.4-2.img" + } + }, + { + "name": "6.4~1", "images": { "hda_disk_image": "linux-tinycore-6.4.img" } diff --git a/packer/tinycore-linux/http/gui/gnome-accessories-character-map.png b/packer/tinycore-linux/http/gui/gnome-accessories-character-map.png new file mode 100644 index 0000000..0469e06 Binary files /dev/null and b/packer/tinycore-linux/http/gui/gnome-accessories-character-map.png differ diff --git a/packer/tinycore-linux/http/gui/gnome-accessories-character-map.txt b/packer/tinycore-linux/http/gui/gnome-accessories-character-map.txt new file mode 100644 index 0000000..1b3d006 --- /dev/null +++ b/packer/tinycore-linux/http/gui/gnome-accessories-character-map.txt @@ -0,0 +1,3 @@ +Package: gnome-icon-theme-2.31.0.tar.gz +File: gnome/48x48/apps/accessories-character-map +License: The GNOME icon theme is distributed under the terms of either GNU LGPL v.3 or Creative Commons BY-SA 3.0 license. diff --git a/packer/tinycore-linux/http/gui/gnome-preferences-desktop-display.png b/packer/tinycore-linux/http/gui/gnome-preferences-desktop-display.png new file mode 100644 index 0000000..a8427ef Binary files /dev/null and b/packer/tinycore-linux/http/gui/gnome-preferences-desktop-display.png differ diff --git a/packer/tinycore-linux/http/gui/gnome-preferences-desktop-display.txt b/packer/tinycore-linux/http/gui/gnome-preferences-desktop-display.txt new file mode 100644 index 0000000..ad7d5fe --- /dev/null +++ b/packer/tinycore-linux/http/gui/gnome-preferences-desktop-display.txt @@ -0,0 +1,3 @@ +Package: gnome-icon-theme-2.31.0.tar.gz +File: gnome/48x48/apps/preferences-desktop-display.png +License: The GNOME icon theme is distributed under the terms of either GNU LGPL v.3 or Creative Commons BY-SA 3.0 license. diff --git a/packer/tinycore-linux/scripts/gui.sh b/packer/tinycore-linux/scripts/gui.sh index 5006119..1ab60a1 100644 --- a/packer/tinycore-linux/scripts/gui.sh +++ b/packer/tinycore-linux/scripts/gui.sh @@ -1,7 +1,255 @@ +set -e +set -x + # Install the GUI tce-load -wi fltk-1.3 tce-load -wi flwm -tce-load -wi Xvesa + +# Install X +tce-load -wi Xorg-7.7 + + +# Create xorg-setup-tools +tce-load -wi Xdialog + +. /etc/init.d/tc-functions +getMirror +wget -P /tmp $MIRROR/squashfs-tools.tcz +tce-load -i /tmp/squashfs-tools.tcz + +sudo mkdir /tmp/xorg-setup-tools +sudo mkdir -p /tmp/xorg-setup-tools/usr/local/bin +sudo mkdir -p /tmp/xorg-setup-tools/usr/local/share/applications +sudo mkdir -p /tmp/xorg-setup-tools/usr/local/share/pixmaps +sudo mkdir -p /tmp/xorg-setup-tools/usr/local/tce.installed + +cat > setup_keyboard <<'EOF' +#!/bin/sh +# setup_keyboard changes the keyboard layout + +# available keyboards +keyboards=' +af "Afghani" +al "Albanian" +et "Amharic" +ara "Arabic" +ma "Arabic (Morocco)" +sy "Arabic (Syria)" +am "Armenian" +az "Azerbaijani" +ml "Bambara" +bd "Bangla" +by "Belarusian" +be "Belgian" +ba "Bosnian" +brai "Braille" +bg "Bulgarian" +mm "Burmese" +cn "Chinese" +hr "Croatian" +cz "Czech" +dk "Danish" +mv "Dhivehi" +nl "Dutch" +bt "Dzongkha" +cm "English (Cameroon)" +gh "English (Ghana)" +ng "English (Nigeria)" +za "English (South Africa)" +gb "English (UK)" +us "English (US)" +epo "Esperanto" +ee "Estonian" +fo "Faroese" +ph "Filipino" +fi "Finnish" +fr "French" +ca "French (Canada)" +cd "French (Democratic Republic of the Congo)" +gn "French (Guinea)" +ge "Georgian" +de "German" +at "German (Austria)" +ch "German (Switzerland)" +gr "Greek" +il "Hebrew" +hu "Hungarian" +is "Icelandic" +in "Indian" +iq "Iraqi" +ie "Irish" +it "Italian" +jp "Japanese" +kz "Kazakh" +kh "Khmer (Cambodia)" +kr "Korean" +kg "Kyrgyz" +la "Lao" +lv "Latvian" +lt "Lithuanian" +mk "Macedonian" +mt "Maltese" +mao "Maori" +md "Moldavian" +mn "Mongolian" +me "Montenegrin" +np "Nepali" +no "Norwegian" +ir "Persian" +pl "Polish" +pt "Portuguese" +br "Portuguese (Brazil)" +ro "Romanian" +ru "Russian" +rs "Serbian" +lk "Sinhala (phonetic)" +sk "Slovak" +si "Slovenian" +es "Spanish" +latam "Spanish (Latin American)" +ke "Swahili (Kenya)" +tz "Swahili (Tanzania)" +se "Swedish" +tw "Taiwanese" +tj "Tajik" +th "Thai" +bw "Tswana" +tr "Turkish" +tm "Turkmen" +ua "Ukrainian" +pk "Urdu (Pakistan)" +uz "Uzbek" +vn "Vietnamese" +sn "Wolof" +' + +# get keyboard layout +eval 'Xdialog --menu "Select Keyboard:" 0 0 0' $keyboards 2> /tmp/setup_keyboard_result +status=$? + +# set new layout +if [ $status -eq 0 ]; then + kbd=`cat /tmp/setup_keyboard_result` + rm -f /tmp/setup_keyboard_result + + sudo sed -i 's/"xkb_layout".*/"xkb_layout" "'"$kbd"'"/' /usr/local/share/X11/xorg.conf.d/98-keyboard.conf + filetool.sh -b + + Xdialog --yesno "Restart GUI to activate?" 0 0 + if [ $? -eq 0 ]; then + sh -c 'killall Xorg; sleep 2; startx /dev/tty1 2>&1' & + fi +else + cat /tmp/setup_keyboard_result >&2 + rm -f /tmp/setup_keyboard_result +fi + +exit $status +EOF +chmod +x setup_keyboard +sudo mv setup_keyboard /tmp/xorg-setup-tools/usr/local/bin/ + +cat > _setup_keyboard.desktop <<'EOF' +[Desktop Entry] +Name=KeyboardLayout +Exec=setup_keyboard +Type=Application +X-FullPathIcon=/usr/local/share/pixmaps/gnome-accessories-character-map.png +Icon=gnome-accessories-character-map.png +Categories=System; +EOF +sudo mv _setup_keyboard.desktop /tmp/xorg-setup-tools/usr/local/share/applications/ + +http=http://`getbootparam http` +wget $http/gui/gnome-accessories-character-map.png +sudo mv gnome-accessories-character-map.png /tmp/xorg-setup-tools/usr/local/share/pixmaps/ + +cat > setup_resolution <<'EOF' +#!/bin/sh +# setup_resolution changes the screen resolution + +# available resolutions +resolutions=' +1024x768 "" +800x600 "" +640x480 "" +' + +# get resolution +eval 'Xdialog --menu "Select resolution:" 10 40 0' $resolutions 2> /tmp/setup_resolution_result +status=$? + +# set new layout +if [ $status -eq 0 ]; then + res=`cat /tmp/setup_resolution_result` + rm -f /tmp/setup_resolution_result + + sudo sed -i 's/Modes.*/Modes "'"$res"'"/' /usr/local/share/X11/xorg.conf.d/99-resolution.conf + filetool.sh -b + + Xdialog --yesno "Restart GUI to activate?" 0 0 + if [ $? -eq 0 ]; then + sh -c 'killall Xorg; sleep 2; startx /dev/tty1 2>&1' & + fi +else + cat /tmp/setup_resolution_result >&2 + rm -f /tmp/setup_resolution_result +fi + +exit $status +EOF +chmod +x setup_resolution +sudo mv setup_resolution /tmp/xorg-setup-tools/usr/local/bin/ + +cat > _setup_resolution.desktop <<'EOF' +[Desktop Entry] +Name=ScreenResolution +Exec=setup_resolution +Type=Application +X-FullPathIcon=/usr/local/share/pixmaps/gnome-preferences-desktop-display.png +Icon=gnome-preferences-desktop-display.png +Categories=System; +EOF +sudo mv _setup_resolution.desktop /tmp/xorg-setup-tools/usr/local/share/applications/ + +wget $http/gui/gnome-preferences-desktop-display.png +sudo mv gnome-preferences-desktop-display.png /tmp/xorg-setup-tools/usr/local/share/pixmaps/ + +cat > xorg-setup-tools <<'END_TCE' +mkdir -p /usr/local/share/X11/xorg.conf.d +cat > /usr/local/share/X11/xorg.conf.d/98-keyboard.conf <<'EOF' +Section "InputClass" + Identifier "keyboard" + MatchIsKeyboard "on" + Option "xkb_layout" "us" + Option "xkb_variant" "nodeadkeys" +EndSection +EOF +cat > /usr/local/share/X11/xorg.conf.d/99-resolution.conf <<'EOF' +Section "Screen" + Identifier "Screen0" + SubSection "Display" + Modes "800x600" + EndSubSection +EndSection +EOF +END_TCE +sudo mv xorg-setup-tools /tmp/xorg-setup-tools/usr/local/tce.installed/ + +sudo chown -R root:root /tmp/xorg-setup-tools +sudo chmod +x /tmp/xorg-setup-tools/usr/local/tce.installed/* +sudo chgrp -R staff /tmp/xorg-setup-tools/usr/local/tce.installed +sudo chmod 775 /tmp/xorg-setup-tools/usr/local/tce.installed + +mksquashfs /tmp/xorg-setup-tools xorg-setup-tools.tcz +md5sum xorg-setup-tools.tcz > xorg-setup-tools.tcz.md5.txt +echo -e "Xorg-7.7.tcz\nXdialog.tcz" > xorg-setup-tools.tcz.dep +mv xorg-setup-tools* /mnt/sda1/tce/optional/ +echo "xorg-setup-tools.tcz" >> /mnt/sda1/tce/onboot.lst + +echo "usr/local/share/X11/xorg.conf.d" >> /opt/.filetool.lst + +# Remaining packages tce-load -wi wbar tce-load -wi Xprogs tce-load -wi Xlibs diff --git a/packer/tinycore-linux/tinycore-linux.json b/packer/tinycore-linux/tinycore-linux.json index cd8bcdb..85a6a00 100644 --- a/packer/tinycore-linux/tinycore-linux.json +++ b/packer/tinycore-linux/tinycore-linux.json @@ -4,7 +4,7 @@ "tc_iso_checksum": "c8e04e26de234e5528e6eac8ecb1bdda", "vm_name": "linux-tinycore-linux-6.4.img", "setup_script": "core.sh", - "disk_size": 1000 + "disk_size": "1000" }, "builders": [ { @@ -25,7 +25,8 @@ "http_directory": "http", "boot_wait": "5s", "boot_command": [ - "mc user=gns3", + "mc user=gns3 http={{ .HTTPIP }}:{{ .HTTPPort }}", + "sudo udhcpc", "sudo passwd gns3gns3gns3", "tce-load -wi openssh", "cd /usr/local/etc/ssh; [ -f sshd_config.example ] && sudo cp -a sshd_config.example sshd_config; cd",