#ff6600

canoodle@nerdpol.ch

Rant: PHP & DokuWiki update upgrade problems - too much complexity: fixing one thing, while breaking another - why updates are hated

Nobody likes rants… just as Updates are (sometimes) hated, but (sometimes) necessary.

This is how (probably) the slogan: “never touch a running/working system” originated.

Once a system was fully tested (all used cases worked), an update came along a old functionality was not functioning anymore.

For security reasons: all machines/systems directly or indirectly exchanging messages with the wild west internet need to stay as up to date as possible.

the pros:

(+) First of DokuWiki is a nice software, it’s cool that it can do a lot of fancy stuff such as LDAP (?) if the user needs it.

(-) What is not cool, to have a lot of plugins installed per default, instead of starting with a bare minimum of software needed (software minimalism) and let the user add the software the user absolutely needs, because “too much software” pre-installed tend to make systems fail.

This time it happened in a “complex grown over years software” “tripple” upgrade situation:

  • php8 is out
  • DokuWiki “upgrade plugin” needs updating
  • DokuWiki itself needs updating

… things fell apart at the 1st step already, resulting in a still readable, but pretty ugly (missing CSS) version of what it was before.

culprit: with a stylesheed was not being properly generated:

url: http://localhost/projects/lib/exe/css.php?t=dokuwiki&tseed=djf83jhdfuz38odhfzho3z80ehilf

<br />
<b><span style="color: #ff9900;">Warning</span></b>: Undefined array key "speech" in <b>/path/to/dokuwiki/lib/exe/css.php</b> on line <b>83</b><br />
<br />
<b><span style="color: #ff0000;">Fatal error</span></b>: Array and string offset access syntax with curly braces is no longer supported in <b>/path/to/dokuwiki/vendor/marcusschwarz/lesserphp/lessc.inc.php</b> on line <b>761</b><br />

DokuWiki authors added the work of this author (https://www.maswaba.de/lesserphpdocs/) for whatever reason and { curly brackets } (now deprecated) were not updated in time to [ square brackets ].

As simple as that.

In the beginning: all the user wants is an easy editable file based wiki (it’s even there in the Dokuwiki slogan “it’s better when it is simple”)

Why exactly is this CSS compiler needed/active per default in the first place?

Has DokuWiki grown into unnecessary complex “bloatware” of over 5000 files?

<span style="color: #00ffff;">wget https://download.dokuwiki.org/out/dokuwiki-8186df5bcf8bba07ff8638254a75b094.tgz
tar fxvz dokuwiki-8186df5bcf8bba07ff8638254a75b094.tgz</span>
<span style="color: #00ffff;">find ./dokuwiki |wc -l</span>
<span style="color: #ff6600;">5579 files</span>

(much less than some PHP frameworks… but still a lot of files… with a lot of moving parts… all potential points of failure…)

violating UNIX K.I.S.S and leading to software failures

More complexity = more errors = less maintainability.

DokuWiki has gained functionalities of questionable qualities, such as the very faulty and thus pretty useless and annoying SPAM detection mechanism.

(every Wiki should be login & .htaccess protected, how to activate the DokuWiki (per default disabled) login screen, is the #1 most visited page of this blog X-D, already enough SPAM protection… so completely unnecessary to add such faulty functionality)

Even worse: @the-official-DokuWiki-forum, the forum software triggers admins (that are unable to read and blindly trust this faulty SPAM detection mechanism, that basically detects EVERY URL as spam) to block the user’s (maybe useful) contributions aka “overblocking”.

Be Brave New Web World.

Only solution: write your own tools that respect UNIX K.I.S.S principle and are therefore easy to fix and maintain and actually work, fast 🙂 (using minimal resources)

DokuWiki updates-upgrades: how it is supposed to look and work like:

how to fix this mess:

==== howto fix ====
<b>Warning</b>: Undefined array key "speech" in <b>/path/to/dokuwiki/lib/exe/css.php</b> on line <b>83</b>
(usually php-warnings are disabled, but if warnings are enabled, it will mess up the css's format)

=== in file: /lib/exe/css.php

== in line: 82 to 87

= change, from:
        // load user styles
        if(is_array($config_cascade['userstyle'][$mediatype])) {
            foreach($config_cascade['userstyle'][$mediatype] as $userstyle) {
                $files[$userstyle] = DOKU_BASE;
            }
        }
= change, to:
        // load user styles
        if(array_key_exists($mediatype, $config_cascade['userstyle']))
        {
            if(is_array($config_cascade['userstyle'][$mediatype])) {
                foreach($config_cascade['userstyle'][$mediatype] as $userstyle) {
                    $files[$userstyle] = DOKU_BASE;
                }
            }
        }

==== howto fix ====

<b>Fatal error</b>: Array and string offset access syntax with curly braces is no longer supported in <b>/path/to/dokuwiki/vendor/marcusschwarz/lesserphp/lessc.inc.php</b> on line <b>761</b>

=== in file:
/vendor/marcusschwarz/lesserphp/lessc.inc.php

== line: 761
= change, from:
   $subProp[1]{0} != $this->vPrefix)
= change, to:
   $subProp[1][0] != $this->vPrefix)

== line: 2762
= change, from:
   if (!is_string($tag) || $tag{0} != $this->lessc->mPrefix)
= change, to:
   if (!is_string($tag) || $tag[0] != $this->lessc->mPrefix)

== line: 2816
= change, from:
   if ($tag{0} == $this->lessc->vPrefix)
= change, to:
   if ($tag[0] == $this->lessc->vPrefix)

#linux #gnu #gnulinux #opensource #administration #sysops #dokuwiki #when #upgrades #fail #upgrade #complexity #unix #kiss

Originally posted at: https://dwaves.de/2022/06/30/rant-php-dokuwiki-update-upgrade-problems-too-much-complexity-fixing-one-thing-while-breaking-another-why-updates-are-hated/

canoodle@nerdpol.ch

PHP & DokuWiki update upgrade problems - too much complexity: fixing one thing, while breaking another - why updates are hated

Updates are hated, but sometimes necessary.

This is how (probably) the slogan: “never touch a running/working system” originated.

Once a system was fully tested (all used cases worked), an update came along a old functionality was not functioning anymore.

For security reasons: all machines/systems directly or indirectly exchanging messages with the wild west internet need to stay as up to date as possible.

the pros:

(+) First of DokuWiki is a nice software, it’s cool that it can do a lot of fancy stuff such as LDAP (?) if the user needs it.

(-) What is not cool, to have a lot of plugins installed per default, instead of starting with a bare minimum of software needed (software minimalism) and let the user add the software the user absolutely needs, because “too much software” pre-installed tend to make systems fail.

This time it happened in a “complex grown over years software” “tripple” upgrade situation:

  • php8 is out
  • DokuWiki “upgrade plugin” needs updating
  • DokuWiki itself needs updating

… things fell apart at the 1st step already, resulting in a still readable, but pretty ugly (missing CSS) version of what it was before.

culprit: with a stylesheed was not being properly generated:

url: http://localhost/projects/lib/exe/css.php?t=dokuwiki&tseed=djf83jhdfuz38odhfzho3z80ehilf

<br />
<b><span style="color: #ff9900;">Warning</span></b>: Undefined array key "speech" in <b>/path/to/dokuwiki/lib/exe/css.php</b> on line <b>83</b><br />
<br />
<b><span style="color: #ff0000;">Fatal error</span></b>: Array and string offset access syntax with curly braces is no longer supported in <b>/path/to/dokuwiki/vendor/marcusschwarz/lesserphp/lessc.inc.php</b> on line <b>761</b><br />

DokuWiki authors added the work of this author (https://www.maswaba.de/lesserphpdocs/) for whatever reason and { curly brackets } (now deprecated) were not updated in time to [ square brackets ].

As simple as that.

In the beginning: all the user wants is an easy editable file based wiki (it’s even there in the Dokuwiki slogan “it’s better when it is simple”)

Why exactly is this CSS compiler needed/active per default in the first place?

Has DokuWiki grown into unnecessary complex “bloatware” of over 5000 files?

<span style="color: #00ffff;">wget https://download.dokuwiki.org/out/dokuwiki-8186df5bcf8bba07ff8638254a75b094.tgz
tar fxvz dokuwiki-8186df5bcf8bba07ff8638254a75b094.tgz</span>
<span style="color: #00ffff;">find ./dokuwiki |wc -l</span>
<span style="color: #ff6600;">5579 files</span>

(much less than some PHP frameworks… but still a lot of files… with a lot of moving parts… all potential points of failure…)

violating UNIX K.I.S.S and leading to software failures

More complexity = more errors = less maintainability.

DokuWiki has gained functionalities of questionable qualities, such as the very faulty and thus SPAM detection mechanism.

(every Wiki should be login & .htaccess protected, how to activate the DokuWiki (per default disabled) login screen, is the #1 most visited page of this blog X-D, already enough SPAM protection… so completely unnecessary to add such faulty functionality)

Even worse: @the-official-DokuWiki-forum, the forum software triggers admins (that are unable to read and blindly trust this faulty SPAM detection mechanism, that basically detects EVERY URL as spam) to block the user’s (maybe useful) contributions aka “overblocking”.

Be Brave New Web World.

Only solution: write your own tools that respect UNIX K.I.S.S principle and are therefore easy to fix and maintain and actually work, fast 🙂 (using minimal resources)

how to fix this mess:

==== howto fix ====
<b>Warning</b>: Undefined array key "speech" in <b>/path/to/dokuwiki/lib/exe/css.php</b> on line <b>83</b>
(usually php-warnings are disabled, but if warnings are enabled, it will mess up the css's format)

=== in file: /lib/exe/css.php

== in line: 82 to 87

= change, from:
        // load user styles
        if(is_array($config_cascade['userstyle'][$mediatype])) {
            foreach($config_cascade['userstyle'][$mediatype] as $userstyle) {
                $files[$userstyle] = DOKU_BASE;
            }
        }
= change, to:
        // load user styles
        if(array_key_exists($mediatype, $config_cascade['userstyle']))
        {
            if(is_array($config_cascade['userstyle'][$mediatype])) {
                foreach($config_cascade['userstyle'][$mediatype] as $userstyle) {
                    $files[$userstyle] = DOKU_BASE;
                }
            }
        }

==== howto fix ====

<b>Fatal error</b>: Array and string offset access syntax with curly braces is no longer supported in <b>/path/to/dokuwiki/vendor/marcusschwarz/lesserphp/lessc.inc.php</b> on line <b>761</b>

=== in file:
/vendor/marcusschwarz/lesserphp/lessc.inc.php

== line: 761
= change, from:
   $subProp[1]{0} != $this->vPrefix)
= change, to:
   $subProp[1][0] != $this->vPrefix)

== line: 2762
= change, from:
   if (!is_string($tag) || $tag{0} != $this->lessc->mPrefix)
= change, to:
   if (!is_string($tag) || $tag[0] != $this->lessc->mPrefix)

== line: 2816
= change, from:
   if ($tag{0} == $this->lessc->vPrefix)
= change, to:
   if ($tag[0] == $this->lessc->vPrefix)

#linux #gnu #gnulinux #opensource #administration #sysops #dokuwiki #when #upgrades #fail #upgrade #complexity #unix #kiss

Originally posted at: https://dwaves.de/2022/06/30/php-dokuwiki-update-upgrade-problems-too-much-complexity-fixing-one-thing-while-breaking-another-why-updates-are-hated/

canoodle@nerdpol.ch

update 2022-06: hardkernel.com how to install xfce4 on ODROID XU4 can do 1080p Youtube and Super Mario Kart@50fps on 8x ARM7 (32Bit) - basic setup - cpu tuning and monitoring

update: 2022-06

  • by now under xfce4 (+lightdm + firefox) it can do 720p and 1080p Youtube (see below screenshots and video)
  • with passive cooling ARM CPU getting very hot rendering:
    • 720p Youtube video 70C (158F)
    • 1080p Youtube video 80C (176F)
  • active cooling recommended, preferably with a quiet fan (default odroid fan is said to be noisy)

720p

1080p

[video width=”742″ height=”436″ mp4=”https://dwaves.de/wp-content/uploads/2017/12/ODROID\_XU4\_Youtube\_1080p\_Screenshot-at-2022-06\_works\_but\_running\_80C\_hot.mp4″\]\[/video\]

how to install xfce4 on odroid XU4

make sure network connectivity is established:

<span style="color: #00ffff;">su - root</span><span style="color: #00ffff;">apt update</span>
# install basics
<span style="color: #00ffff;">apt install console-data ssh rsync</span>

# did not quiet do it
<span style="color: #00ffff;">apt install armbian-bullseye-desktop-xfce</span>

# should do it
<span style="color: #00ffff;">apt install xfce4 lightdm xorg tango-icon-theme gnome-icon-theme firefox-esr pavucontrol pulseaudio</span>

update: 2019-10: what it does:

  • one can install a very decent Debian and have okay working speed so yes it can be seen as a very energy efficient (5V based) and still usable (definately faster than pi2) desktop system (99% of all packages available
  • clock for performance: one can manually set the CPU to “performance” with the tool: <span style="color: #00ffff;">gksu odroid-cpu-control</span>

or

  <span style="color: #00ffff;">/usr/local/sbin/odroid-cpu-control</span>

(maximum clock speed at all times) but then things get very fast but also 90°C and more hot (very very hot) so not recommended, so better to select “ondemand” and “from 200 Mhz to 1400 or 2000 Mhz
- if one needs maximum performance consider installing active cooling fan and set clock to permanent maximum.

Super Mario Kart (retroarch) can be played pretty smooth (50-60fps at about 60-75°C) with a little cpu tuning.

this blog post update is written on the xu4 Debian Jessie 8 (Game Station Turbo Image, (direct download link) then recommended to download 500MBytes of updates then firefox stable) and Firefox 60.9.0esr (32-bit)

one is pretty new to Kodi (it comes with older version Javis) can’t really say anything about it… have never used it.

odroid@gamestation-turbo:~$ <span style="color: #00ffff;">hostnamectl</span> 
   Static hostname: <a href="https://forum.odroid.com/viewtopic.php?t=7322">gamestation-turbo</a>
         Icon name: computer
           Chassis: n/a
  Operating System: Debian GNU/Linux 8 (jessie)
            Kernel: Linux 3.10.106+
      Architecture: arm

what it does not:

  • it does not 1080p full hd with 100 frames
    • it is okay at 720p but still one is wondering: where is the GPU hardware acceleration? the 8x ARM CPUs seem to do all the work on Firefox playing Youtube on Debian 8 (hd is stuttering)
    • kodi (latest version on android) plays stuff fine
  • netflix.com refused to work (well this guy has managed to even on an older C1)

tried all possible variants (if one got it working let me know)

suspected problem: no Widevine Support? (Google Chrome will drop 32-bit machines but Chromium is still going. (Source))

so this could be the problem… that 32Bit ARM is simply not supported by Widevine?

(Raspberry Pi 3 can run it… the older Raspberries seem too slow for the job)

neither Debian 8 (Jessie) Firefox (60.9 esr) nor Android + NetFlix App (won’t install straight from Play Store because it says “hardware not supported” but even when one exports the App via AppExtractor from a Android Phone and installs it on Android on xu4 Netflix refuses to work 🙁

who needs netflix if one can have Scott Manley’s Youtube Channel about Space stuff? HURRAY 🙂 (one is serious about this… really love it)

the hardware

you can get the ODROID with HDMI (monitor/screen with audio) output:

“The Odroid XU4 comes outfitted with 2GB of DDR3 RAM, and an Samsung Exynos 5422 CPU, the Odroid beat out many SBCs including the ultra-popular Pi 3 in benchmark tests from Love Our Pi.”

(2.1GHz Quad-Core (Cortex®-A15 (32Bit)) + 1.4GHz Quad-Core (Cortex®-A7 (32Bit)))

with active cooling: https://www.pollin.de/p/odroid-xu4-einplatinen-computer-samsung-exynos-5422-2-gb-2x-usb-3-0-810409

with passive cooling: https://www.pollin.de/p/odroid-xu4q-einplatinen-computer-samsung-exynos-5422-2-gb-2x-usb-3-0-810750

for 80€

bootup dmesg output of recent Armbian:

odroid.xu4.dmesg.txt

odroid.xu4.lsusb.txt

recommended addons:

  • a fast microsd card with 64GBytes of storage
  • a USB Hub (will run out of ports (only 3x) fast (mouse, keyboard, wifi stick, joypad1 and joypad2)
  • usb wifi adapter like 148f:5572 Ralink Technology, Corp. RT5572 Wireless Adapter

      <span style="color: #00ffff;">apt-get install firmware-ralink</span>
    

    In Debian 9: Install the firmware-misc-nonfree package:

      <span style="color: #00ffff;">apt install firmware-misc-nonfree</span>
    
  • <span style="color: #00ffff;">lsusb</span> 
    Bus 006 Device 002: ID 0bda:8153 Realtek Semiconductor Corp. 
    Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 002: ID 05e3:0616 Genesys Logic, Inc. 
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 006: ID 0079:0011 DragonRise Inc. Gamepad
    Bus 003 Device 005: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
    Bus 003 Device 004: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
    Bus 003 Device 003: ID 0461:0010 Primax Electronics, Ltd HP Keyboard
    Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 002: ID <span style="color: #ff9900;"><strong>148f:5572 Ralink Technology, Corp. <a href="https://www.ebay.de/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=RT5572+Wireless+Adapter&_sacat=0">RT5572 Wireless Adapter</a></strong></span>
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

lsmod|grep rt28
rt2800usb 17720 0
rt2800lib 75674 1 rt2800usb
rt2x00usb 10723 1 rt2800usb
rt2x00lib 43390 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 567210 3 rt2x00lib,rt2x00usb,rt2800lib

dmesg|grep rt2x
[ 23.250784] [c6] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected
[ 23.286987] [c6] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 000f detected
[ 24.978846] [c4] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 25.010855] [c4] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29

dmesg|less
# then search for /ieee80211
[ 23.250784] [c6] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5592, rev 0222 detected
[ 23.263058] [c5] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[ 23.286987] [c6] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 000f detected
[ 23.296854] [c6] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 23.298225] [c6] usbcore: registered new interface driver rt2800usb
[ 24.958894] [c4] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 24.978846] [c4] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 25.010855] [c4] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29


cpu frequency clock speed mhz monitoring script: (works on intel x86 CPUs as well)
==================================================================================

this will monitor “on demand” changes to cpu clock in real time… (1 sec interval)

vim /scripts/mon\_cpu.sh

while true; do
echo "===== arm based cpu frequency monitoring ====="
sort /proc/cpuinfo | uniq
for d in /sys/devices/system/cpu/cpu* ; do
if [ -f "$d/cpufreq/scaling_cur_freq" ]
then
echo "$d";
cat $d/cpufreq/scaling_cur_freq;
fi
done
sleep 1; clear; done
```

sample output:

===== arm based cpu frequency monitoring =====
/sys/devices/system/cpu/cpu0
300000
/sys/devices/system/cpu/cpu1
300000
/sys/devices/system/cpu/cpu2
800000
/sys/devices/system/cpu/cpu3
800000
/sys/devices/system/cpu/cpu4
600000
/sys/devices/system/cpu/cpu5
600000
/sys/devices/system/cpu/cpu6
600000
/sys/devices/system/cpu/cpu7
600000

what does it look like?

What SoC are you using?

The SoC is a Samsung Exynos5422 Octa.

What GPU does it include?

An ARM Mali-T628 6 Core.

heat

Complex components such as the XU4 processor may reach temperatures as high as 95°C. At high temperatures, the processor will throttle itself and operate slower so that temperatures do not continue to increase.

robotics

The 30-pin GPIO port can be used as GPIO/IRQ/SPI/ADC, and the 12-pin GPIO port can be used as GPIO/I2S/I2C for electronics and robotics. The GPIO pins on an ODROID-XU4 are a great way to interface with physical devices like buttons and LEDs using a lightweight Linux controller. If you’re a C/C++ or Python developer, there’s a useful library called WiringPi that handles interfacing with the pins, which is described in Chapter 4. Note that all of the GPIO ports are 1.8Volt, and the ADC inputs are limited to 1.8Volt. If a sensor or peripheral

needs higher voltage, the GPIO ports may be level-shifted to 3.3V or 5V using the XU4 Level Shifter Shield.

Serial console port

Connecting to a PC gives access to the Linux console. You can monitor the boot process, or to log in to the XU4 to perform root maintenance.

Note that this serial UART uses a 1.8 volt interface, and it is recommended to use the USB-UART module kit available from Hardkernel.

A Molex 5268-04a (2.5mm pitch) is mounted on the PCB, and its mate is Molex 50-37-5043 Wire-to-Board Crimp Housing.

RTC (Real Time Clock) backup battery connector

If you want to add a RTC functions for logging or keeping time when offline, just connect a Lithium coin backup battery (CR2032 or equivalent). All of the RTC circuits are included on the ODROID-XU4 by default. It connects with a Molex 53398-0271 1.25mm pitch Header, Surface Mount, Vertical type (Mate with Molex 51021-0200).

Gigabit Ethernet

The Realtek RTL8211F is a highly intergrated 10/100/1000M Ethernet transceiver that complies with 10Base-T, 100Base-TX, and 1000Base-T IEEE 802.3 standards.

USB MTT hub controller

The Genesys GL3521 is a 2-port, low-power, and configurable

USB 3.0 SuperSpeed hub controller.

documentation

community support forum: https://forum.odroid.com/

https://wiki.odroid.com/odroid-xu4/odroid-xu4

https://wiki.odroid.com/odroid-xu4/application_note/software/headless_setup

https://magazine.odroid.com/wp-content/uploads/odroid-xu4-user-manual.pdf

download images firmware os software

first of all if you want to use the MicroSDCARD you will have to flip the switch to the left:

android 4.4.4

https://wiki.odroid.com/odroid-xu4/os_images/android/android

debian “armbian”

i used this image of stretch (debian9): https://forum.odroid.com/viewtopic.php?f=96&t=30552

https://www.armbian.com/odroid-xu4/

overall the xu4 is more powerful hence a better better/ quicker desktop replacement than raspberry pi 2 (did not test version 3) but it is not perfect.

You can clearly feel a lack of computing power and speed when you fire up gimp to “quickly” edit some screenshots – it works – but even 8x

model name  : ARMv7 Processor rev 3 (v7l)
BogoMIPS    : 36.00

cpuinfo.txt + SANDISK Ultra microSDXC 64 GB MicroSD card as “harddisk” can not compete with i5+SSD.

    • gnome mate works 🙂 (this is what you see screenshot above)
    • LibreOffice works 🙂
    • hdmi video and sound works! (tested with Samsung TV)
    • firefox (could not get youtube hardware encoding to work yet, also not DRM so netflix not working 🙁
      • youtube works
    • thunderbird does not work “Segmentation fault” but mail client evolution does 🙂
    • use retroarch for gaming / game emulation
    • vlc does not work, you can use cvlc /path/video.mp4
    • gimp works 🙂
    • blobby volley works perfectly with 75 FPS
    • SuperTux2 works
    • chromium does not work:
      • chromium –version
        Chromium 70.0.3538.110 built on Debian 9.6, running on Debian 9.6
      • here is the log: chromium crash.txt
  • webcam cheese works!

    • HD Pro Webcam C920 as /devices/platform/soc/soc:usb3-0/12000000.dwc3/xhci-hcd.3.auto/usb3/3-1/3-1.2/3-1.2:1.0/input/input6
  • /etc/apt/sources.list looks like this.

  • list all installed software: dpkg -ldpkg-l-installed-software

<span style="color: #00ffff;">hostnamectl</span> 
Static hostname: odroid
Icon name: computer
Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.14.81+
Architecture: arm

<span style="color: #00ffff;">uname -a</span>
Linux odroid 4.14.81+ #1 SMP PREEMPT Fri Nov 16 14:06:58 UTC 2018 armv7l GNU/Linux

games:

some really manage to turn this thing into a major gaming emulator machine 🙂 nice job!

ODROID GameStation Turbo https://magazine.odroid.com/article/os-spotlight-odroid-gamestation-turbo/

https://forum.odroid.com/viewtopic.php?f=98&t=7322

ubuntu

http://com.odroid.com/sigong/blog/blog_list.php?tag=ODROID-XU4

leads to:

ubuntu-16.04.2-mate-odroid-xu4-20170510.img.md5sum2017-05-10 21:1078ubuntu-16.04.2-mate-odroid-xu4-20170510.img.xz2017-05-10 21:141.2Gubuntu-16.04.2-mate-odroid-xu4-20170510.img.xz.md5sum2017-05-10 21:1481ubuntu-16.04.2-minimal-odroid-xu4-20170516.img.md5sum2017-05-17 21:1881ubuntu-16.04.2-minimal-odroid-xu4-20170516.img.xz2017-05-17 21:18257Mubuntu-16.04.2-minimal-odroid-xu4-20170516.img.xz.md5sum2017-05-17 21:1984ubuntu-16.04.3-4.9-mate-odroid-xu4-20171025.img.md5sum2017-10-30 07:2882ubuntu-16.04.3-4.9-mate-odroid-xu4-20171025.img.xz2017-10-30 07:281.2Gubuntu-16.04.3-4.9-mate-odroid-xu4-20171025.img.xz.md5sum2017-10-30 07:2885ubuntu-16.04.3-4.9-minimal-odroid-xu4-20170824.img.md5sum2017-08-24 14:0185ubuntu-16.04.3-4.9-minimal-odroid-xu4-20170824.img.xz2017-08-24 14:03280Mubuntu-16.04.3-4.9-minimal-odroid-xu4-20170824.img.xz.md5sum2017-08-24 14:0388ubuntu-16.04.3-4.14-mate-odroid-xu4-20171212.img.md5sum2017-12-13 15:5983ubuntu-16.04.3-4.14-mate-odroid-xu4-20171212.img.xz2017-12-13 15:591.3Gubuntu-16.04.3-4.14-mate-odroid-xu4-20171212.img.xz.md5sum2017-12-13 15:5986ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.md5sum2017-12-15 16:1786*ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz*2017-12-15 16:17302Mubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz.md5sum2017-12-15 16:1789load it onto sdcard

warning! POTENTIAL DATALOSS! selecting the wrong device can OVERWRITE DATA ON YOUR COMPUTER ATTACHED HARDDISKS!

insert sdcard into your sdcard reader..

<span style="color: #00ffff;">wget http://de.eu.odroid.in/ubuntu_16.04lts/ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz</span>; # download image<span style="color: #00ffff;">
lsblk</span>; # make sure you identify the right hardware. 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk 
├─sda1 8:1 0 49G 0 part /projects
├─sda5 8:5 0 67.4G 0 part /
└─sda6 8:6 0 2.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom 
<span style="color: #ff6600;">mmcblk0</span> 179:0 0 14.9G 0 disk 
└─mmcblk0p1 179:1 0 14.9G 0 part
# mmcblk0p1 is the first partition on device <span style="color: #ff6600;">mmcblk0 (the sdcard)
</span><span style="color: #00ffff;">apt-get install xz-utils</span>; # install maybe missing unpacking software <span style="color: #00ffff;">md5sum ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz</span>; # check if md5sum matches <span style="color: #00ffff;">unxz ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz</span>; # unpack the image
<span style="color: #00ffff;">umount /dev/mmcblk0p1</span>; # unmount sdcard time
# write directly
<span style="color: #00ffff;">md5sum -c ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz.md5sum</span>; # verify downloaded file has no errors 
<span style="color: #00ff00;">ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz: OK
</span>
# two possible ways to continue
# write directly unpack on the fly<span style="color: #00ffff;">
xzcat /download/folder/ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz | sudo dd bs=41 of=/dev/mmcblk0
watch kill -USR1 $(pgrep ^dd)</span>; # watch progress, it will copy 1.8GByte
<span style="color: #00ffff;">sync</span>; # run this to write disk cache to disk

# or
# unpack first<span style="color: #00ffff;">
unxz ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz</span>; # unpack 1.8GByte
# possibly this tool was called un-xz, if unxz does not work try un-xz?

# umount the sdcard
<span style="color: #00ffff;">umount /dev/mmcblk0*
</span># write the image<span style="color: #00ffff;">
dd bs=1M if=/download/folder/ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img of=/dev/mmcblk0</span>; # write image to sdcard
<span style="color: #00ffff;">watch kill -USR1 $(pgrep ^dd)</span>; # watch progress, it will copy 1.8GByte <span style="color: #00ffff;">
sync</span>; # run this to write disk cache to disk

<span style="color: #ff0000;"># NOTE!</span>
# during first boot it sits for 3-5 minutes on this message: 
<span style="color: #ffff00;"># "random crng init done"</span>
# it then reboots and sits again on this message...
# this is <span style="color: #ffff00;">NORMAL! it does some partition resizing! this takes time.</span>
# (using the full size of the sdcard)
# please wait paitently.
# if one hour later nothing has changed
# and you do not see a login screen
# restart try again...
# or
# either powersupply is insufficient
# or
# sdcard has problems, check it for bad sectors and/or exchange
<span style="color: #00ffff;">umount /dev/mmcblk0*
badblocks -n -v /dev/mmcblk0</span>

setup

depending on if you can connect a monitor or not:

  1. insert micro sdcard…
  2. LAN connect ODROID XU4 to a DHCP-server ((DSL) router/fritzbox with DHCP enabled)
  3. LAN connect PC/Laptop to the same DHCP-server
  4. start wireshark on your laptop and power on ODROID XU4.

networking: dhcp and finding odroid’s ip

can be a little pain in the a….fternoon.

the ubuntu ODROID XU4 image does not come with a fixed IP, so you will have to connect it to some sort of DHCP-server (router) in order to ssh into it, or install the dhcp-server-service under debian 8. (maybe as VirtualBox VM).

you can also use wireshark and to listen to network activity related to the odroid (dhcp-offer) and find it’s IP this way.

you are looking for simething like:

15 2.286036000 <span style="color: #ff0000;">Wibrain_</span>30:cf:9b Broadcast ARP 60 Who has 192.168.0.1? Tell <span style="color: #ff0000;">192.168.1.101</span>

or use nmap network scanner to find it’s ip…

nmap -n -v -p 1-255 -n -sS 192.168.<span style="color: #ff0000;">10</span>.0/24
Initiating SYN Stealth Scan at 22:21
Scanning <span style="color: #ff0000;">192.168.10.10</span> [255 ports]
Discovered open port 22/tcp on 192.168.10.1

modify the above line depending in what kind of subnet your router is operating. (192.168.XXX.XXX)

ssh into it

usr: root / usr: odroid
pwd: odroid

root@odroid:~# hostnamectl 
   Static hostname: odroid
         Icon name: computer
  Operating System: Ubuntu 16.04.3 LTS
            Kernel: Linux 4.14.5-92
      Architecture: arm

CONGRATULATIONS! YOU LOGGED IN SUCCESSFULLY THE FIRST TIME TO YOUR EMBEDDED POWERHOUSE!

fix the ip

to not have to hassle with dhcp servers again one can change the ip to fixed via:

<span style="color: #00ffff;">nano /etc/network/interfaces</span>

fill it with this content:

# The loopback network interface  
auto lo  
iface lo inet loopback  

# The primary network interface  
auto eth0 
iface eth0 inet static  
address 192.168.<span style="color: #ff6600;">0.111</span>
netmask 255.255.255.0
gateway 192.168.<span style="color: #ff6600;">0.1</span>
dns-nameservers 192.168.<span style="color: #ff6600;">0.1 
</span>

modify the orange parts so it fits your LAN settings – then type:

<span style="color: #00ffff;">reboot
</span>

if everything went straight… you should be able to ping the odroid on 0.111 and ssh into it on 0.111

messing with the odroid

the first thing you probably do with a new system is check for updates…

if your network settings are correct your odroid should be able to access the internet.

<span style="color: #00ffff;">ping yahoo.com</span>; # check if internet is working
<span style="color: #00ffff;">apt update</span>; # update package index
Hit:1 http://ports.ubuntu.com/ubuntu-ports xenial InRelease
Hit:2 http://ppa.launchpad.net/saiarcot895/myppa/ubuntu xenial InRelease 
Get:3 http://ports.ubuntu.com/ubuntu-ports xenial-updates InRelease [102 kB] 
Hit:4 http://deb.odroid.in/5422-s xenial InRelease 
Get:5 http://ports.ubuntu.com/ubuntu-ports xenial-backports InRelease [102 kB] 
Get:6 http://ports.ubuntu.com/ubuntu-ports xenial-security InRelease [102 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports xenial-updates/main Sources [286 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports xenial-updates/main armhf Packages [587 kB]
Get:9 http://ports.ubuntu.com/ubuntu-ports xenial-updates/universe armhf Packages [499 kB]
Fetched 1678 kB in 2s (667 kB/s) 
Reading package lists... Done

<span style="color: #00ffff;">apt upgrade</span>; # upgrade system
The following packages have been kept back:
 linux-image-xu3
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

<span style="color: #00ffff;">apt install linux-image-xu3</span>; # force upgrade of this package

# what follows is this scary message that one accepts by selecting "No"
<a href="https://dwaves.de/wp-content/uploads/2017/12/odroid-scary-kernel-upgrade-yes-no-question-screen.png"><img alt="" class="alignnone wp-image-12775 size-full" height="246" src="https://dwaves.de/wp-content/uploads/2017/12/odroid-scary-kernel-upgrade-yes-no-question-screen.png" width="1677"></img></a>

# then an <a href="https://dwaves.de/wp-content/uploads/2017/12/apt-install-linux-image-xu3-output.txt">output like this should follow...</a>

<span style="color: #00ffff;">apt autoremove</span>; # remove packages that have become obsolete

<span style="color: #00ffff;">reboot</span>; # reboot now to load new kernel
Connection to 192.168.0.111 closed by remote host.
Connection to 192.168.0.111 closed.
<span style="color: #00ffff;">ping 192.168.0.111</span>; # after round about 30 seconds the odroid xu4 should have rebooted and respond to your pings
PING 192.168.0.111 (192.168.0.111) 56(84) bytes of data.
64 bytes from 192.168.0.111: icmp_seq=27 ttl=64 time=1.12 ms
64 bytes from 192.168.0.111: icmp_seq=28 ttl=64 time=0.513 ms
64 bytes from 192.168.0.111: icmp_seq=29 ttl=64 time=0.480 ms

<span style="color: #00ffff;">apt install htop vim rsync</span>; # install cool software task monitor htop, vim, rsync
<span style="color: #00ffff;">htop</span>; # and start it
<a href="https://dwaves.de/wp-content/uploads/2017/12/Screenshot_odroid-xu4-htop-task-monitoring.jpg"><img alt="" class="alignnone wp-image-12778 size-full" height="552" src="https://dwaves.de/wp-content/uploads/2017/12/Screenshot_odroid-xu4-htop-task-monitoring.jpg" width="1024"></img></a>
# as you can see the 8x CPUs of the odroid xu4 are pretty bored right now

cpu benchmarking:

<span style="color: #00ffff;">apt install sysbench</span>; # let's install them some work
<span style="color: #00ffff;">mkdir /scripts</span>
<span style="color: #00ffff;">vim /scripts/bench_cpu.sh
</span>
#!/bin/bash

NUM_CORES=$(grep -c ^processor /proc/cpuinfo)

echo "============ CPU MIPS and FLOPS"

cat /proc/cpuinfo | grep -ie hardware;
cat /proc/cpuinfo | grep -ie model;
cat /proc/cpuinfo | grep -ie mips;
cat /proc/cpuinfo | grep -ie flops;

echo "============ CPU BENCHMARK"

sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=$NUM_CORES

:wq save and quit or download it.

<span style="color: #00ffff;">wget <a href="https://dwaves.de/wp-content/uploads/2017/05/bench_cpu.sh_.txt">https://dwaves.de/wp-content/uploads/2017/05/bench_cpu.sh_.txt</a></span>; # download script<span style="color: #00ffff;">
mv bench_cpu.sh_.txt bench_cpu.sh</span>; # rename<span style="color: #00ffff;">
chmod +x /scripts/bench_cpu.sh</span>; # make script executable
<span style="color: #00ffff;">/scripts/bench_cpu.sh</span>; # run it

============ CPU MIPS and FLOPS
Hardware : ODROID-XU4
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
model name : ARMv7 Processor rev 3 (v7l)
============ CPU BENCHMARK
sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 8

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000

Test execution summary:
total time: 37.4554s
total number of events: 10000
total time taken by event execution: 299.4689
per-request statistics:
min: 23.26ms
avg: 29.95ms
max: 44.59ms
approx. 95 percentile: 40.59ms

Threads fairness:
events (avg/stddev): 1250.0000/327.26
execution time (avg/stddev): 37.4336/0.01

so the benchmark ran in 37 seconds. (rerun with the debian jessie 8 turbo game station image and performance governer: execution time (avg/stddev): 56.9216/0.01…)

on an QuadCore Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz the benchmark run in 14.60 seconds.

so the 8x core ODROID X4U is 2.5 times slower than the 4x core i5 at 1.60 GHZ using all available cores.

while doing this

<span style="color: #00ffff;">vim /scripts/cpu_temp.sh</span>
#!/bin/bash

while true ; do

cpu_temp=$(< /sys/class/thermal/thermal_zone0/temp)
cpu_temp=$(($cpu_temp/1000))
echo $cpu_temp C

sleep 1;
clear;

done # executes COMMAND every second

i monitored the temp of the cpu for around 30minutes while running all 8 cores full speed.

the system is PASSIVELY cooled and seems to throttles the CPUs automatically when 80 degrees Celsius are reached.

maximum measured temp was 82 Celsius (179.6 F).

the passively cooled case got warm but not uncomfortably hot. i have heard raspberry had problems with heat.

when the benchmark was over the temps dropped instantly to 53 C.

Introduction Videos:

https://youtu.be/xxl4ORk4SJo

https://www.youtube.com/watch?v=wtqfC9v0xB0

https://www.youtube.com/watch?v=lUchfyTpOjU

Real Time Clock: RTC

just as the Raspberry pi, the odroid needs a battery to keep clock when it is turned off.

https://www.hardkernel.com/main/products/prdt_info.php?g_code=G137508214939

ODROID-HC1 no HDMI but SATA version

there is/was a NAS/SATA variation (headless, no GPU, no HDMI, no screen/monitor) : https://www.pollin.de/p/odroid-hc1-einplatinen-computer-fuer-nas-und-cluster-anwendungen-810766 for 60€.

#linux #gnu #gnulinux #opensource #administration #sysops #hardware #odroid #embedded #desktop #desktopreplacement #mariokart #snes #segamegadrive #genesis #sega #sonic #mario #game #games #retrogames #retroarch #debian #hardkernel

Originally posted at: https://dwaves.de/2017/12/19/update-2022-06-hardkernel-com-how-to-install-xfce4-on-odroid-xu4-can-do-1080p-youtube-and-super-mario-kart50fps-on-8x-arm7-32bit-basic-setup-cpu-tuning-and-monitoring/

canoodle@nerdpol.ch

GNU Linux Debian 11 - text to speech (text2speech) - read out text loud - listen to computer spoken text

instead of reading massively long passages of text (which can become tiresome fast)

it might be nice, to have the computer read out that text?

let’s do that 🙂

multiple choices

there are different Open Source text2speech systems, programs out there…

multi language talent: pico tts

(no not the text editor)

  • supported languages:
    • English, US (en-US) / English, GB (en-GB)
    • Spanish (es-ES)
    • French (fr-FR)
    • German (de-DE)
    • Italian (it-IT)

The Pico service produces audio streams using WAV containers and PCM (signed) codec with 16bit depth.

“The Pico Text-to-Speech (TTS) service uses the TTS binary from SVOX for producing spoken text.”

“You manually need to install the pico2wave binary in order for this service to work correctly. You can, e.g., install it with apt-get on an Ubuntu system” (src)

show me the src: https://github.com/naggety/picotts

<span style="color: #00ffff;">lsb_release -a</span>; # tested on
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

# if not already, install the genious mplayer & ffmpeg packages :)
# (or some other player that can play wav files)
<span style="color: #00ffff;">su - root
apt update
apt install mplayer ffmpeg</span>

# pre compiled package (not the latest, but might just do the job)
<span style="color: #00ffff;">apt search libttspico-utils
apt install libttspico-utils</span>
libttspico-utils/stable,stable 1.0+git20130326-11 amd64
  Small Footprint TTS (binaries)

# compile from src
# as non-root
<span style="color: #00ffff;">git clone https://github.com/naggety/picotts.git
cd pico/picotts/pico

su - root
apt update; apt install autoconf libtool help2man libpopt-dev debhelper;</span>
Ctrl+D # log off root
<span style="color: #00ffff;">./autogen.sh
./configure 
make

su - root
cd /software/pico/picotts/pico
make install

</span># remove packages (not needed anymore)<span style="color: #00ffff;">
apt-get remove --purge autoconf libtool help2man libpopt-dev debhelper
apt-get autoremove --purge</span>

how to let it read text, usage example:

copy and paste the text the user wants to have read out loud into a file called read.txt

# for US-English
<span style="color: #00ffff;">cat read.txt| pico2wave -l en-US -w ./read.text.wav; mplayer ./read.text.wav;rm -rf ./read.text.wav;</span>

# for UK-English
<span style="color: #00ffff;">cat read.txt| pico2wave -l en-GB -w ./read.text.wav; mplayer ./read.text.wav;rm -rf ./read.text.wav;</span>

# for Spanish
<span style="color: #00ffff;">cat read.txt| pico2wave -l es-ES -w ./read.text.wav; mplayer ./read.text.wav;rm -rf ./read.text.wav;</span>

# for French
<span style="color: #00ffff;">cat read.txt| pico2wave -l fr-FR -w ./read.text.wav; mplayer ./read.text.wav;rm -rf ./read.text.wav;</span>

# for German
<span style="color: #00ffff;">cat read.txt| pico2wave -l de-DE -w ./read.text.wav; mplayer ./read.text.wav;rm -rf ./read.text.wav;</span>

# for Italian
<span style="color: #00ffff;">cat read.txt| pico2wave -l it-IT -w ./read.text.wav; mplayer ./read.text.wav;rm -rf ./read.text.wav;

</span>

script it 🙂

usage example of the script:

<span style="color: #00ffff;">/scripts/read.sh read.txt en</span>
# create the script<span style="color: #00ffff;">
vim /scripts/read.sh</span>

<span style="color: #ff6600;">#!/bin/bash

echo "... converting text $1 to computer spoken audio"

if [ "$2" = "en" ];
then
    # for US-English
    cat $1 | pico2wave -l en-US -w ./read.text.wav;
fi

if [ "$2" = "uk" ];
then
    # for UK-English
    cat read.txt| pico2wave -l en-GB -w ./read.text.wav;
fi

if [ "$2" = "es" ];
then
    # for Spanish
    cat read.txt| pico2wave -l es-ES -w ./read.text.wav;
fi

if [ "$2" = "fr" ];
then
    # for French
    cat read.txt| pico2wave -l fr-FR -w ./read.text.wav;
fi

if [ "$2" = "de" ];
then
    # for German
    cat read.txt| pico2wave -l de-DE -w ./read.text.wav;
fi

if [ "$2" = "it" ];
then
    # for Italian
    cat read.txt| pico2wave -l it-IT -w ./read.text.wav;
fi

echo "... starting playback"
mplayer ./read.text.wav;

echo "... removing temporary wav file"
rm -rf ./read.text.wav;

</span>

english only but with accents: flite

flite supports only english (?) but that even in DIFFERENT ACCENTS! X-D

<span style="color: #00ffff;">su - root
apt update; apt install flite;</span>
flite/stable,now 2.2-2 amd64 [installed]
  Small run-time speech synthesis engine

# get more english language accents
<span style="color: #00ffff;">wget -r --no-parent --no-directories --accept flitevox http://www.festvox.org/flite/packed/flite-2.0/voices/
</span>
# usage example
<span style="color: #00ffff;">cat speak.txt | flite -voice /path/to/flite/voices/cmu_us_awb.flitevox
</span>

Links:

creditz: https://cstan.io/?p=11840&lang=en

#linux #gnu #gnulinux #opensource #administration #sysops #text #speech #audio

Originally posted at: https://dwaves.de/2022/04/25/gnu-linux-debian-11-text-to-speech-text2speech-read-out-text-loud-listen-to-computer-spoken-text/

canoodle@nerdpol.ch

GNU Linux - i-war running inside GNU Linux Debian 11 via wine - run old dos games (and windo(w)s games) from wine to dosbox-x - how to compile from latest src - first problems: keyboard / some keys ":" not working

Remember Monkey Island and Tomb Raider 1? yeah… wanna play it on GNU Linux? yeeeessss!

over 1600 FREE DOS GAMES! -> https://www.dosgames.com/

and also this goody:

https://dwaves.de/2022/04/19/i-war-defiance-1997-how-to-setup-windows-7-and-windows-10-with-3d-acceleration-a-old-but-genious-scifi-space-ship-simulator-with-real-mass-drifting-inertia/

i-war: why this game is a genius space flight and fight sim

gate jump: from earth to jupiter (?)

check out the the 3rd trainings mission: docking with containers (fast) and throwing them through a ring X-D

[video width=”746″ height=”560″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-pc-game-1997-independence-war-mission-docking-with-crates-and-throwing-them-through-a-ring-creativity-and-beauty-in-game-design-genious-autopilot-almost-messes-up.mp4″\]\[/video\]

… this could make for an interesting ship space soccer game… X-D (dock with the ball… and inertia throw it through the goal of the enemy X-D)

wine

[video width=”638″ height=”428″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-running-inside-gnu-linux-debian-11-via-wine.mp4″\]\[/video\]

wine: what works?

  • the setup
  • nGlide setup
  • the game itself EVEN in 3DFx-Voodoo-nGlide in full screen mode 🙂 (CONGRATZ ALL INVOLVED! GREAT JOB!)

wine: what does not work?

  • in-game menus
  • instructors sound output (might be a game “can’t find cdrom drive” related issue)
  • it crashes on the end of a mission, but the progress is still saved… so simply restart the game after every mission and should be good
  • possible problems: does not detect the CD-ROM drive (even when it is mounted and files are clearly accessible)
    • possible workaround: copy the CD1 CD2 CD3 CD4 content simply into the game folder….

nice!

wine per default creates an folder called

/home/user/.wine/drive_c

which resembles the C:\ drive while installing, it will store files there.

install:

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt update</span>
<span style="color: #00ffff;">apt install wine winetricks
</span># start the config tool<span style="color: #00ffff;">
winecfg
</span># start the config tool
# <a href="https://github.com/Winetricks/winetricks">https://github.com/Winetricks/winetricks</a><span style="color: #00ffff;">
winetricks
winetricks --optout
</span>
# mount cd image iso
<span style="color: #00ffff;">mkdir /media/user/cdrom</span>
<span style="color: #00ffff;">mount -t iso9660 -r -o loop /path/to/iwar-cd1.iso /media/user/cdrom

</span># wine setup, this will create a "prefix" "iwar"
# (aka a alias under which to store-remember the settings for this game)
<span style="color: #00ffff;">WINEPREFIX=${HOME}/games/iwar WINEARCH=win32 winecfg</span>
# in the dialogue
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png"><img alt="" class="alignnone size-full wp-image-25717" height="696" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png" width="607"></img></a>
# Applications → Windows Version → Windows 98 (hit apply)
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png"><img alt="" class="alignnone size-full wp-image-25718" height="506" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png" width="591"></img></a>
# Graphics → Emulate a virtual desktop → Desktop size: 1024x786

# not sure if this is actually needed
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png"><img alt="" class="alignnone size-full wp-image-25719" height="513" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png" width="612"></img></a>

# install game setup
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine /media/user/cdrom/SETUP.EXE
</span>
<a href="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg"><img alt="" class="alignnone size-full wp-image-25655" height="906" src="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg" width="1219"></img></a>
# the installer should come up and just work fine
# leave it at default install path

# try to start<strong> THE GAME :)</strong>
<span style="color: #00ffff;">cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"</span>
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine IWar.exe</span>

<strong><a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25720" height="522" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg" width="761"></img></a>
 <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25721" height="511" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg" width="753"></img></a>

NICE! :) Space Pilots! ENGAGE!

<a href="https://duckduckgo.com/?q=star+trek+lower+decks&t=ffab&ia=web"><img alt="" class="alignnone wp-image-25735 size-full" height="500" src="https://dwaves.de/wp-content/uploads/2022/04/star-trek-lower-decks-marvel-at-the-stars.jpg" width="889"></img></a>

</strong><strong>the menus are still a bit glitchy but...
true space pilots are not scared by that
there are only 4 symbols:
<a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet-1.jpg"><img alt="" class="alignnone size-full wp-image-25734" height="502" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet-1.jpg" width="641"></img></a>

<a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-options-screenshot.png"><img alt="" class="alignnone size-full wp-image-25733" height="501" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-options-screenshot.png" width="636"></img></a></strong>

just4info:

i-war stored the path to the setup cdrom in the registry here…

nice 🙂 now what about full screen?

the workaround is like this:

  1. set monitor to 800×600
  2. config wine
  3. ``` WINEPREFIX=${HOME}/iwar winecfg

# create a new start.bat in the same folder as the IWar.exe
echo "IWar.exe -b -16 -800x600 -english" > "~/iwar/drive_c/Program Files/Particle Systems/Independence War/start.bat"

# start the game via wine explorer
cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"
WINEPREFIX=${HOME}/iwar wine explorer
```
4. search for the start.bat -r-click-> open & enjoy 🙂

playonlinux

it’s basically a gui for wine…

unfortunately same problem here… the game won’t detect CD change… possible workaround: copy the CD1 CD2 CD3 CD4 content simply into the game folder….

might also be interesting checking out:

https://www.playonlinux.com/en/

virtualbox.org?

while it is possible to run i-war in software rendering mode (not the smoother 3d accelerated mode that would be started with:

<span style="color: #00ffff;">"C:\Programme\Particle Systems\Independence War\IWar.exe" -b -16 -800x600 -english</span>

within a windows xp vm (set RAM to 256MBytes!)

there will probably be (never?) be proper 3DFx / nGlide / Voodoo support… https://www.virtualbox.org/ticket/7828

dosbox-x:

https://dosbox-x.com/

managed to install win 98 se… but was not able to mount any disk-image.iso (no kidding! it is a major hazzle!

and the documentation does not check out, sorry guys)

if no windoowze is needed to play the game… even BETTER! 🙂

as penguins try to win the war for independence from closed source 🙂

https://dosbox-x.com (NOT based on wine!)

  • “running Linux in an x86 or x86-64 PC … can also try running Windows games and applications using Wine.”
  • “Especially 32-bit Windows games and applications, typically work quite well, and this may be an easier and faster solution and provide better integration with your desktop environment.”
  • “16-bit or mixed 16/32-bit Windows games and applications are more problematic with Wine as modern 64-bit Linux distributions typically have the required kernel functionality for running 16-bit code (e.g., X86_16BIT and MODIFY_LDT_SYSCALL) disabled at kernel compile time.” (src)

compile instructions can be found here: https://github.com/joncampbell123/dosbox-x/blob/master/BUILD.md

https://dosbox-x.com/

https://dosbox-x.com/

<span style="color: #00ffff;">lsb_release -a</span>
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt search dosbox</span>
# installs old version
dosbox/stable<span style="color: #ff6600;"> 0.74-3-3</span> amd64
  x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS

# to install latest version compile from src: <a href="https://github.com/joncampbell123/dosbox-x/">https://github.com/joncampbell123/dosbox-x/</a>
<span style="color: #00ffff;">su - root
apt update
</span>
# install requirements
<span style="color: #00ffff;">apt install automake gcc g++ make libncurses-dev nasm libsdl-net1.2-dev libsdl2-net-dev libpcap-dev libslirp-dev fluidsynth libfluidsynth-dev libavdevice58 libavformat-dev libavcodec-dev libavcodec-extra libavcodec-extra58 libswscale-dev libfreetype-dev libxkbfile-dev libxrandr-dev
</span>
# clone dosbox source to local machine
<span style="color: #00ffff;">git clone https://github.com/joncampbell123/dosbox-x.git</span>

# compile as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">cd dosbox-x
./build-debug</span>
# install binaries as root
<span style="color: #00ffff;">su - root
make install</span>

# run as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">dosbox-x</span>

# it is located here
<span style="color: #00ffff;">/usr/bin/dosbox-x</span>

# alternative: snapd setup
<span style="color: #00ffff;">apt install snapd
snap install core
snap install dosbox-x
</span>
snap remove dosbox-x

congratz! 🙂

first problems: keyboard / some keys “:” not working

for example with older version it was no problem typing “ö” and getting (US-KeybLayout) a “:”

to work around this problem, open a terminal type “:”, copy it to clipboard, start dosbox-x and hit Ctrl+F6 to paste it in

How to install Windows 98 SE?

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

when the user wants to install windows 98 se

can get it from here: https://archive.org/details/win98se_201801

(but the serial is missing?)

  1. rename the iso to win98se.iso and put it into the user’s home directory
  2. create config file (also in user’s home directory):
    • <span style="color: #00ffff;">cd ~ wget <a href="https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt">https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt</a></span> <span style="color: #00ffff;">mv -v win98.conf_.txt win98.conf </span> 3. start it like this: - <span style="color: #00ffff;">dosbox -conf win98.conf</span>

the Ctrl+F6 hotkey comes in handy in the next steps, so simply copy and paste those instructions line by line:

# IMGMAKE hdd.img -t hd_8gig
<span style="color: #00ffff;">IMGMAKE hdd.img -t hd -size 16384 -force
IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
</span># copy CD content to C: because during setup it will ask for more files from the CD
<span style="color: #00ccff;">XCOPY D:\WIN98 C:\WIN98 /I /E</span>
<span style="color: #00ffff;">IMGMOUNT A -bootcd D BOOT A:
BOOT A:</span>

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

When the Windows installer reboots, and your back at the DOSBox-X Z:\> prompt. Close DOSBox-X and edit your win98.conf config file, and add the following lines in the [autoexec] section at the end of the file:

IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
BOOT C:

hotkeys / shortcuts: Special Keys

These are the default keybindings. They can be changed using the keymapper.

Note: If you’re using a Mac and are having trouble with the function keys, you may need to set your F keys to function as function keys. You can do this by going to System Preferences > Keyboard, going to the Keyboard area, and checking the “Use all F1, F2, etc” box.

KeyAction*ALT-ENTERSwitch to full-screen (and back).ALT-PAUSE (ALT-F16 on OS X)Pause emulation.CTRL-F1Show the keymapper configuration screen,CTRL-F4Update cached information about mounted drives. Useful if you changed something on a mounted drive outside of DOSBox. Also cycles through disk images mounted using IMGMOUNT.CTRL-F5Save a screenshot (goes to capture folder).CTRL-ALT-F5Start/Stop recording of AVI video. NOTE: You may well have some problems with this, please see Recording Video for more information.CTRL-F6Start/Stop recording sound output to a wave file (goes to capture folder).CTRL-ALT-F7Start/Stop recording of OPL commands.CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.CTRL-F7Decreases frameskip.CTRL-F8Increases frameskip.CTRL-F9Kill (close) DOSBox.CTRL-F10Capture/Release the mouse (if you need to use the mouse within DOSBox).CTRL-F11Decrease DOSBox cycles (slows down the emulation).CTRL-F12Increase DOSBox cycles (speeds up the emulation).ALT-F12*Unlock speed (turbo button).These default bindings are also documented in the README file accompanying the software.

Language Keys

When a keyboard layout is loaded:

CTRL+ALT+F2Switch between foreign layout and US layout.LEFT-ALT+RIGHT-SHIFTActivate dual layouts (for some keyboards, e.g. GK codepage 869 and RU codepage 808).LEFT-ALT+LEFT-SHIFTDeactivate dual layouts.For OS X you have to use additionally + [Applekey] for the same result

INS key is [Fn] + M on OS X.

For Linux you have to use additionally + [win] for the same result

src: https://www.dosbox.com/wiki/Special_Keys

creditz:

Links:

thanks for inspiration: https://darrengoossens.wordpress.com/2021/01/20/dosbox-x-on-debian-10-compiling-and-running/

https://snapcraft.io/install/dosbox-x/debian

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

https://www.dosgames.com/game/duke-nukem-3d/ <- for the nerds that enjoyed this reckless guy

https://i-war2.com/

#linux #gnu #gnulinux #opensource #administration #sysops #wine #games #gnu-linux #game #iwar #space #simulator #spaceship

Originally posted at: https://dwaves.de/2022/04/21/gnu-linux-i-war-running-inside-gnu-linux-debian-11-via-wine-run-old-dos-games-and-windows-games-from-wine-to-dosbox-x-how-to-compile-from-latest-src-first-problems-keyboard-some-keys/

canoodle@nerdpol.ch

GNU Linux - i-war running inside GNU Linux Debian 11 via wine - run old dos games (and windo(w)s games) from wine to dosbox-x - how to compile from latest src - first problems: keyboard / some keys ":" not working

Remember Monkey Island and Tomb Raider 1? yeah… wanna play it on GNU Linux? yeeeessss!

over 1600 FREE DOS GAMES! -> https://www.dosgames.com/

and also this goody:

https://dwaves.de/2022/04/19/i-war-defiance-1997-how-to-setup-windows-7-and-windows-10-with-3d-acceleration-a-old-but-genious-scifi-space-ship-simulator-with-real-mass-drifting-inertia/

i-war: why this game is a genius space flight and fight sim

gate jump: from earth to jupiter (?)

check out the the 3rd trainings mission: docking with containers (fast) and throwing them through a ring X-D

[video width=”746″ height=”560″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-pc-game-1997-independence-war-mission-docking-with-crates-and-throwing-them-through-a-ring-creativity-and-beauty-in-game-design-genious-autopilot-almost-messes-up.mp4″\]\[/video\]

… this could make for an interesting ship space soccer game… X-D (dock with the ball… and inertia throw it through the goal of the enemy X-D)

wine

[video width=”638″ height=”428″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-running-inside-gnu-linux-debian-11-via-wine.mp4″\]\[/video\]

nice!

although this is the software rendering mode… happy that 1) sound works 2) 3D graphics work 🙂

(the menus don’t work but that’s not a biggie for i-war professionals X-D)

it’s a a bit of fiddling & getting used to, but actually got iwar setup working and the game also… what does not (currently) work is changing CDs (game won’t detect CD change, even when it clearly changed).

wine per default creates an folder called

/home/user/.wine/drive_c

which resembles the C:\ drive while installing, it will store files there.

install:

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt update</span>
<span style="color: #00ffff;">apt install wine winetricks
</span># start the config tool<span style="color: #00ffff;">
winecfg
</span># start the config tool
# <a href="https://github.com/Winetricks/winetricks">https://github.com/Winetricks/winetricks</a><span style="color: #00ffff;">
winetricks
winetricks --optout
</span>
# mount cd image iso
<span style="color: #00ffff;">mkdir /media/user/cdrom</span>
<span style="color: #00ffff;">mount -t iso9660 -r -o loop /path/to/iwar-cd1.iso /media/user/cdrom

</span># wine setup, this will create a "prefix" "iwar"
# (aka a alias under which to store-remember the settings for this game)
<span style="color: #00ffff;">WINEPREFIX=${HOME}/games/iwar WINEARCH=win32 winecfg</span>
# in the dialogue
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png"><img alt="" class="alignnone size-full wp-image-25717" height="696" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png" width="607"></img></a>
# Applications → Windows Version → Windows 98 (hit apply)
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png"><img alt="" class="alignnone size-full wp-image-25718" height="506" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png" width="591"></img></a>
# Graphics → Emulate a virtual desktop → Desktop size: 1024x786

# not sure if this is actually needed
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png"><img alt="" class="alignnone size-full wp-image-25719" height="513" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png" width="612"></img></a>

# install game setup
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine /media/user/cdrom/SETUP.EXE
</span>
<a href="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg"><img alt="" class="alignnone size-full wp-image-25655" height="906" src="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg" width="1219"></img></a>
# the installer should come up and just work fine
# leave it at default install path

# try to start<strong> THE GAME :)</strong>
<span style="color: #00ffff;">cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"</span>
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine IWar.exe</span>

<strong><a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25720" height="522" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg" width="761"></img></a>
 <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25721" height="511" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg" width="753"></img></a>

NICE! :) Space Pilots! ENGAGE!

<a href="https://duckduckgo.com/?q=star+trek+lower+decks&t=ffab&ia=web"><img alt="" class="alignnone wp-image-25735 size-full" height="500" src="https://dwaves.de/wp-content/uploads/2022/04/star-trek-lower-decks-marvel-at-the-stars.jpg" width="889"></img></a>

</strong><strong>the menus are still a bit glitchy but...
true space pilots are not scared by that
there are only 4 symbols:
<a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet-1.jpg"><img alt="" class="alignnone size-full wp-image-25734" height="502" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet-1.jpg" width="641"></img></a>

<a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-options-screenshot.png"><img alt="" class="alignnone size-full wp-image-25733" height="501" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-options-screenshot.png" width="636"></img></a></strong>

just4info:

i-war stored the path to the setup cdrom in the registry here…

nice 🙂 now what about full screen?

the workaround is like this:

  1. set monitor to 800×600
  2. config wine
  3. ``` WINEPREFIX=${HOME}/iwar winecfg

# create a new start.bat in the same folder as the IWar.exe
echo "IWar.exe -b -16 -800x600 -english" > "~/iwar/drive_c/Program Files/Particle Systems/Independence War/start.bat"

# start the game via wine explorer
cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"
WINEPREFIX=${HOME}/iwar wine explorer
```
4. search for the start.bat -r-click-> open & enjoy 🙂

playonlinux

it’s basically a gui for wine…

same problem here… the game won’t detect CD change…

might also be interesting checking out:

https://www.playonlinux.com/en/

virtualbox.org?

while it is possible to run i-war in software rendering mode (not the smoother 3d accelerated mode that would be started with:

<span style="color: #00ffff;">"C:\Programme\Particle Systems\Independence War\IWar.exe" -b -16 -800x600 -english</span>

within a windows xp vm (set RAM to 256MBytes!)

there will probably be (never?) be proper 3DFx / nGlide / Voodoo support… https://www.virtualbox.org/ticket/7828

dosbox-x:

https://dosbox-x.com/

managed to install win 98 se… but was not able to mount any disk-image.iso (no kidding! it is a major hazzle!

and the documentation does not check out, sorry guys)

if no windoowze is needed to play the game… even BETTER! 🙂

as penguins try to win the war for independence from closed source 🙂

https://dosbox-x.com (NOT based on wine!)

  • “running Linux in an x86 or x86-64 PC … can also try running Windows games and applications using Wine.”
  • “Especially 32-bit Windows games and applications, typically work quite well, and this may be an easier and faster solution and provide better integration with your desktop environment.”
  • “16-bit or mixed 16/32-bit Windows games and applications are more problematic with Wine as modern 64-bit Linux distributions typically have the required kernel functionality for running 16-bit code (e.g., X86_16BIT and MODIFY_LDT_SYSCALL) disabled at kernel compile time.” (src)

compile instructions can be found here: https://github.com/joncampbell123/dosbox-x/blob/master/BUILD.md

https://dosbox-x.com/

https://dosbox-x.com/

<span style="color: #00ffff;">lsb_release -a</span>
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt search dosbox</span>
# installs old version
dosbox/stable<span style="color: #ff6600;"> 0.74-3-3</span> amd64
  x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS

# to install latest version compile from src: <a href="https://github.com/joncampbell123/dosbox-x/">https://github.com/joncampbell123/dosbox-x/</a>
<span style="color: #00ffff;">su - root
apt update
</span>
# install requirements
<span style="color: #00ffff;">apt install automake gcc g++ make libncurses-dev nasm libsdl-net1.2-dev libsdl2-net-dev libpcap-dev libslirp-dev fluidsynth libfluidsynth-dev libavdevice58 libavformat-dev libavcodec-dev libavcodec-extra libavcodec-extra58 libswscale-dev libfreetype-dev libxkbfile-dev libxrandr-dev
</span>
# clone dosbox source to local machine
<span style="color: #00ffff;">git clone https://github.com/joncampbell123/dosbox-x.git</span>

# compile as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">cd dosbox-x
./build-debug</span>
# install binaries as root
<span style="color: #00ffff;">su - root
make install</span>

# run as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">dosbox-x</span>

# it is located here
<span style="color: #00ffff;">/usr/bin/dosbox-x</span>

# alternative: snapd setup
<span style="color: #00ffff;">apt install snapd
snap install core
snap install dosbox-x
</span>
snap remove dosbox-x

congratz! 🙂

first problems: keyboard / some keys “:” not working

for example with older version it was no problem typing “ö” and getting (US-KeybLayout) a “:”

to work around this problem, open a terminal type “:”, copy it to clipboard, start dosbox-x and hit Ctrl+F6 to paste it in

How to install Windows 98 SE?

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

when the user wants to install windows 98 se

can get it from here: https://archive.org/details/win98se_201801

(but the serial is missing?)

  1. rename the iso to win98se.iso and put it into the user’s home directory
  2. create config file (also in user’s home directory):
    • <span style="color: #00ffff;">cd ~ wget <a href="https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt">https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt</a></span> <span style="color: #00ffff;">mv -v win98.conf_.txt win98.conf </span> 3. start it like this: - <span style="color: #00ffff;">dosbox -conf win98.conf</span>

the Ctrl+F6 hotkey comes in handy in the next steps, so simply copy and paste those instructions line by line:

# IMGMAKE hdd.img -t hd_8gig
<span style="color: #00ffff;">IMGMAKE hdd.img -t hd -size 16384 -force
IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
</span># copy CD content to C: because during setup it will ask for more files from the CD
<span style="color: #00ccff;">XCOPY D:\WIN98 C:\WIN98 /I /E</span>
<span style="color: #00ffff;">IMGMOUNT A -bootcd D BOOT A:
BOOT A:</span>

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

When the Windows installer reboots, and your back at the DOSBox-X Z:\> prompt. Close DOSBox-X and edit your win98.conf config file, and add the following lines in the [autoexec] section at the end of the file:

IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
BOOT C:

hotkeys / shortcuts: Special Keys

These are the default keybindings. They can be changed using the keymapper.

Note: If you’re using a Mac and are having trouble with the function keys, you may need to set your F keys to function as function keys. You can do this by going to System Preferences > Keyboard, going to the Keyboard area, and checking the “Use all F1, F2, etc” box.

KeyAction*ALT-ENTERSwitch to full-screen (and back).ALT-PAUSE (ALT-F16 on OS X)Pause emulation.CTRL-F1Show the keymapper configuration screen,CTRL-F4Update cached information about mounted drives. Useful if you changed something on a mounted drive outside of DOSBox. Also cycles through disk images mounted using IMGMOUNT.CTRL-F5Save a screenshot (goes to capture folder).CTRL-ALT-F5Start/Stop recording of AVI video. NOTE: You may well have some problems with this, please see Recording Video for more information.CTRL-F6Start/Stop recording sound output to a wave file (goes to capture folder).CTRL-ALT-F7Start/Stop recording of OPL commands.CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.CTRL-F7Decreases frameskip.CTRL-F8Increases frameskip.CTRL-F9Kill (close) DOSBox.CTRL-F10Capture/Release the mouse (if you need to use the mouse within DOSBox).CTRL-F11Decrease DOSBox cycles (slows down the emulation).CTRL-F12Increase DOSBox cycles (speeds up the emulation).ALT-F12*Unlock speed (turbo button).These default bindings are also documented in the README file accompanying the software.

Language Keys

When a keyboard layout is loaded:

CTRL+ALT+F2Switch between foreign layout and US layout.LEFT-ALT+RIGHT-SHIFTActivate dual layouts (for some keyboards, e.g. GK codepage 869 and RU codepage 808).LEFT-ALT+LEFT-SHIFTDeactivate dual layouts.For OS X you have to use additionally + [Applekey] for the same result

INS key is [Fn] + M on OS X.

For Linux you have to use additionally + [win] for the same result

src: https://www.dosbox.com/wiki/Special_Keys

creditz:

Links:

thanks for inspiration: https://darrengoossens.wordpress.com/2021/01/20/dosbox-x-on-debian-10-compiling-and-running/

https://snapcraft.io/install/dosbox-x/debian

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

https://www.dosgames.com/game/duke-nukem-3d/ <- for the nerds that enjoyed this reckless guy

https://i-war2.com/

#linux #gnu #gnulinux #opensource #administration #sysops #wine #games #gnu-linux #game #iwar #space #simulator #spaceship

Originally posted at: https://dwaves.de/2022/04/21/gnu-linux-i-war-running-inside-gnu-linux-debian-11-via-wine-run-old-dos-games-and-windows-games-from-wine-to-dosbox-x-how-to-compile-from-latest-src-first-problems-keyboard-some-keys/

canoodle@nerdpol.ch

GNU Linux - i-war running inside GNU Linux via wine - run old dos games (and windo(w)s games) from wine to dosbox-x - how to compile from latest src - first problems: keyboard / some keys ":" not working

Remember Monkey Island and Tomb Raider 1? yeah… wanna play it on GNU Linux? yeeeessss!

over 1600 FREE DOS GAMES! -> https://www.dosgames.com/

and also this goody:

https://dwaves.de/2022/04/19/i-war-defiance-1997-how-to-setup-windows-7-and-windows-10-with-3d-acceleration-a-old-but-genious-scifi-space-ship-simulator-with-real-mass-drifting-inertia/

wine

[video width=”638″ height=”428″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-running-inside-gnu-linux-debian-11-via-wine.mp4″\]\[/video\]

nice!

although this is the software rendering mode… happy that 1) sound works 2) 3D graphics work 🙂

(the menus don’t work but that’s not a biggie for i-war professionals X-D)

it’s a a bit of fiddling & getting used to, but actually got iwar setup working and the game also… what does not (currently) work is changing CDs (game won’t detect CD change, even when it clearly changed).

wine per default creates an folder called

/home/user/.wine/drive_c

which resembles the C:\ drive while installing, it will store files there.

install:

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt update</span>
<span style="color: #00ffff;">apt install wine winetricks
</span># start the config tool<span style="color: #00ffff;">
winecfg
</span># start the config tool
# <a href="https://github.com/Winetricks/winetricks">https://github.com/Winetricks/winetricks</a><span style="color: #00ffff;">
winetricks
winetricks --optout
</span>
# mount cd image iso
<span style="color: #00ffff;">mkdir /media/user/cdrom</span>
<span style="color: #00ffff;">mount -t iso9660 -r -o loop /path/to/iwar-cd1.iso /media/user/cdrom

</span># wine setup, this will create a "prefix" "iwar"
# (aka a alias under which to store-remember the settings for this game)
<span style="color: #00ffff;">WINEPREFIX=${HOME}/games/iwar WINEARCH=win32 winecfg</span>
# in the dialogue
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png"><img alt="" class="alignnone size-full wp-image-25717" height="696" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png" width="607"></img></a>
# Applications → Windows Version → Windows 98 (hit apply)
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png"><img alt="" class="alignnone size-full wp-image-25718" height="506" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png" width="591"></img></a>
# Graphics → Emulate a virtual desktop → Desktop size: 1024x786

# not sure if this is actually needed
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png"><img alt="" class="alignnone size-full wp-image-25719" height="513" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png" width="612"></img></a>

# install game setup
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine /media/user/cdrom/SETUP.EXE
</span>
<a href="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg"><img alt="" class="alignnone size-full wp-image-25655" height="906" src="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg" width="1219"></img></a>
# the installer should come up and just work fine
# leave it at default install path

# try to start<strong> THE GAME :)</strong>
<span style="color: #00ffff;">cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"</span>
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine IWar.exe</span>

<strong><a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25720" height="522" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg" width="761"></img></a> <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25721" height="511" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg" width="753"></img></a> <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet.jpg"><img alt="" class="alignnone size-full wp-image-25722" height="502" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet.jpg" width="641"></img></a>
NICE! :) Space Pilots! ENGAGE!</strong>

just4info:

i-war stored the path to the setup cdrom in the registry here…

playonlinux

it’s basically a gui for wine…

same problem here… the game won’t detect CD change…

might also be interesting checking out:

https://www.playonlinux.com/en/

dosbox-x:

managed to install win 98 se… but was not able to mount any disk-image.iso (no kidding! it is a major hazzle!

and the documentation does not check out, sorry guys)

if no windoowze is needed to play the game… even BETTER! 🙂

as penguins try to win the war for independence from closed source 🙂

https://dosbox-x.com (NOT based on wine!)

  • “running Linux in an x86 or x86-64 PC … can also try running Windows games and applications using Wine.”
  • “Especially 32-bit Windows games and applications, typically work quite well, and this may be an easier and faster solution and provide better integration with your desktop environment.”
  • “16-bit or mixed 16/32-bit Windows games and applications are more problematic with Wine as modern 64-bit Linux distributions typically have the required kernel functionality for running 16-bit code (e.g., X86_16BIT and MODIFY_LDT_SYSCALL) disabled at kernel compile time.” (src)

compile instructions can be found here: https://github.com/joncampbell123/dosbox-x/blob/master/BUILD.md

<span style="color: #00ffff;">lsb_release -a</span>
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt search dosbox</span>
# installs old version
dosbox/stable<span style="color: #ff6600;"> 0.74-3-3</span> amd64
  x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS

# to install latest version compile from src: <a href="https://github.com/joncampbell123/dosbox-x/">https://github.com/joncampbell123/dosbox-x/</a>
<span style="color: #00ffff;">su - root
apt update
</span>
# install requirements
<span style="color: #00ffff;">apt install automake gcc g++ make libncurses-dev nasm libsdl-net1.2-dev libsdl2-net-dev libpcap-dev libslirp-dev fluidsynth libfluidsynth-dev libavdevice58 libavformat-dev libavcodec-dev libavcodec-extra libavcodec-extra58 libswscale-dev libfreetype-dev libxkbfile-dev libxrandr-dev
</span>
# clone dosbox source to local machine
<span style="color: #00ffff;">git clone https://github.com/joncampbell123/dosbox-x.git</span>

# compile as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">cd dosbox-x
./build-debug</span>
# install binaries as root
<span style="color: #00ffff;">su - root
make install</span>

# run as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">dosbox-x</span>

# it is located here
<span style="color: #00ffff;">/usr/bin/dosbox-x</span>

# alternative: snapd setup
<span style="color: #00ffff;">apt install snapd
snap install core
snap install dosbox-x
</span>
snap remove dosbox-x

congratz! 🙂

first problems: keyboard / some keys “:” not working

for example with older version it was no problem typing “ö” and getting (US-KeybLayout) a “:”

to work around this problem, open a terminal type “:”, copy it to clipboard, start dosbox-x and hit Ctrl+F6 to paste it in

How to install Windows 98 SE?

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

when the user wants to install windows 98 se

can get it from here: https://archive.org/details/win98se_201801

(but the serial is missing?)

  1. rename the iso to win98se.iso and put it into the user’s home directory
  2. create config file (also in user’s home directory):
    • <span style="color: #00ffff;">cd ~ wget <a href="https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt">https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt</a></span> <span style="color: #00ffff;">mv -v win98.conf_.txt win98.conf </span> 3. start it like this: - <span style="color: #00ffff;">dosbox -conf win98.conf</span>

the Ctrl+F6 hotkey comes in handy in the next steps, so simply copy and paste those instructions line by line:

# IMGMAKE hdd.img -t hd_8gig
<span style="color: #00ffff;">IMGMAKE hdd.img -t hd -size 16384 -force
IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
</span># copy CD content to C: because during setup it will ask for more files from the CD
<span style="color: #00ccff;">XCOPY D:\WIN98 C:\WIN98 /I /E</span>
<span style="color: #00ffff;">IMGMOUNT A -bootcd D BOOT A:
BOOT A:</span>

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

When the Windows installer reboots, and your back at the DOSBox-X Z:\> prompt. Close DOSBox-X and edit your win98.conf config file, and add the following lines in the [autoexec] section at the end of the file:

IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
BOOT C:

hotkeys / shortcuts: Special Keys

These are the default keybindings. They can be changed using the keymapper.

Note: If you’re using a Mac and are having trouble with the function keys, you may need to set your F keys to function as function keys. You can do this by going to System Preferences > Keyboard, going to the Keyboard area, and checking the “Use all F1, F2, etc” box.

KeyAction*ALT-ENTERSwitch to full-screen (and back).ALT-PAUSE (ALT-F16 on OS X)Pause emulation.CTRL-F1Show the keymapper configuration screen,CTRL-F4Update cached information about mounted drives. Useful if you changed something on a mounted drive outside of DOSBox. Also cycles through disk images mounted using IMGMOUNT.CTRL-F5Save a screenshot (goes to capture folder).CTRL-ALT-F5Start/Stop recording of AVI video. NOTE: You may well have some problems with this, please see Recording Video for more information.CTRL-F6Start/Stop recording sound output to a wave file (goes to capture folder).CTRL-ALT-F7Start/Stop recording of OPL commands.CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.CTRL-F7Decreases frameskip.CTRL-F8Increases frameskip.CTRL-F9Kill (close) DOSBox.CTRL-F10Capture/Release the mouse (if you need to use the mouse within DOSBox).CTRL-F11Decrease DOSBox cycles (slows down the emulation).CTRL-F12Increase DOSBox cycles (speeds up the emulation).ALT-F12*Unlock speed (turbo button).These default bindings are also documented in the README file accompanying the software.

Language Keys

When a keyboard layout is loaded:

CTRL+ALT+F2Switch between foreign layout and US layout.LEFT-ALT+RIGHT-SHIFTActivate dual layouts (for some keyboards, e.g. GK codepage 869 and RU codepage 808).LEFT-ALT+LEFT-SHIFTDeactivate dual layouts.For OS X you have to use additionally + [Applekey] for the same result

INS key is [Fn] + M on OS X.

For Linux you have to use additionally + [win] for the same result

src: https://www.dosbox.com/wiki/Special_Keys

Links:

thanks for inspiration: https://darrengoossens.wordpress.com/2021/01/20/dosbox-x-on-debian-10-compiling-and-running/

https://snapcraft.io/install/dosbox-x/debian

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

https://www.dosgames.com/game/duke-nukem-3d/ <- for the nerds that enjoyed this reckless guy

#linux #gnu #gnulinux #opensource #administration #sysops #wine #games #gnu-linux #game #iwar #space #simulator #spaceship

Originally posted at: https://dwaves.de/2022/04/21/gnu-linux-i-war-running-inside-gnu-linux-via-wine-run-old-dos-games-and-windows-games-from-wine-to-dosbox-x-how-to-compile-from-latest-src-first-problems-keyboard-some-keys-not-wo/

canoodle@nerdpol.ch

GNU Linux - i-war running inside GNU Linux via wine - run old dos games (and windo(w)s games) from wine to dosbox-x - how to compile from latest src - first problems: keyboard / some keys ":" not working

Remember Monkey Island and Tomb Raider 1? yeah… wanna play it on GNU Linux? yeeeessss!

over 1600 FREE DOS GAMES! -> https://www.dosgames.com/

and also this goody:

https://dwaves.de/2022/04/19/i-war-defiance-1997-how-to-setup-windows-7-and-windows-10-with-3d-acceleration-a-old-but-genious-scifi-space-ship-simulator-with-real-mass-drifting-inertia/

wine

[video width=”638″ height=”428″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-running-inside-gnu-linux-debian-11-via-wine.mp4″\]\[/video\]

nice!

although this is the software rendering mode… happy that 1) sound works 2) 3D graphics work 🙂

(the menus don’t work but that’s not a biggie for i-war professionals X-D)

it’s a a bit of fiddling & getting used to, but actually got iwar setup working and the game also… what does not (currently) work is changing CDs (game won’t detect CD change, even when it clearly changed).

wine per default creates an folder called

/home/user/.wine/drive_c

which resembles the C:\ drive while installing, it will store files there.

install:

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt update</span>
<span style="color: #00ffff;">apt install wine winetricks
</span># start the config tool<span style="color: #00ffff;">
winecfg
</span># start the config tool
# <a href="https://github.com/Winetricks/winetricks">https://github.com/Winetricks/winetricks</a><span style="color: #00ffff;">
winetricks
winetricks --optout
</span>
# mount cd image iso
<span style="color: #00ffff;">mkdir /media/user/cdrom</span>
<span style="color: #00ffff;">mount -t iso9660 -r -o loop /path/to/iwar-cd1.iso /media/user/cdrom

</span># wine setup, this will create a "prefix" "iwar"
# (aka a alias under which to store-remember the settings for this game)
<span style="color: #00ffff;">WINEPREFIX=${HOME}/games/iwar WINEARCH=win32 winecfg</span>
# in the dialogue
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png"><img alt="" class="alignnone size-full wp-image-25717" height="696" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png" width="607"></img></a>
# Applications → Windows Version → Windows 98 (hit apply)
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png"><img alt="" class="alignnone size-full wp-image-25718" height="506" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png" width="591"></img></a>
# Graphics → Emulate a virtual desktop → Desktop size: 1024x786

# not sure if this is actually needed
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png"><img alt="" class="alignnone size-full wp-image-25719" height="513" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png" width="612"></img></a>

# install game setup
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine /media/user/cdrom/SETUP.EXE
</span>
<a href="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg"><img alt="" class="alignnone size-full wp-image-25655" height="906" src="https://dwaves.de/wp-content/uploads/2022/04/iwar_setup.jpg" width="1219"></img></a>
# the installer should come up and just work fine
# leave it at default install path

# try to start<strong> THE GAME :)</strong>
<span style="color: #00ffff;">cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"</span>
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine IWar.exe</span>

<strong><a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25720" height="522" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg" width="761"></img></a> <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25721" height="511" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg" width="753"></img></a> <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet.jpg"><img alt="" class="alignnone size-full wp-image-25722" height="502" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet.jpg" width="641"></img></a>
NICE! :) Space Pilots! ENGAGE!</strong>

just4info:

i-war stored the path to the setup cdrom in the registry here…

playonlinux

it’s basically a gui for wine…

same problem here… the game won’t detect CD change…

might also be interesting checking out:

https://www.playonlinux.com/en/

dosbox-x:

managed to install win 98 se… but was not able to mount any disk-image.iso (no kidding! it is a major hazzle!

and the documentation does not check out, sorry guys)

if no windoowze is needed to play the game… even BETTER! 🙂

as penguins try to win the war for independence from closed source 🙂

https://dosbox-x.com (also based on wine?)

compile instructions can be found here: https://github.com/joncampbell123/dosbox-x/blob/master/BUILD.md

<span style="color: #00ffff;">lsb_release -a</span>
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt search dosbox</span>
# installs old version
dosbox/stable<span style="color: #ff6600;"> 0.74-3-3</span> amd64
  x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS

# to install latest version compile from src: <a href="https://github.com/joncampbell123/dosbox-x/">https://github.com/joncampbell123/dosbox-x/</a>
<span style="color: #00ffff;">su - root
apt update
</span>
# install requirements
<span style="color: #00ffff;">apt install automake gcc g++ make libncurses-dev nasm libsdl-net1.2-dev libsdl2-net-dev libpcap-dev libslirp-dev fluidsynth libfluidsynth-dev libavdevice58 libavformat-dev libavcodec-dev libavcodec-extra libavcodec-extra58 libswscale-dev libfreetype-dev libxkbfile-dev libxrandr-dev
</span>
# clone dosbox source to local machine
<span style="color: #00ffff;">git clone https://github.com/joncampbell123/dosbox-x.git</span>

# compile as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">cd dosbox-x
./build-debug</span>
# install binaries as root
<span style="color: #00ffff;">su - root
make install</span>

# run as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">dosbox-x</span>

# it is located here
<span style="color: #00ffff;">/usr/bin/dosbox-x</span>

# alternative: snapd setup
<span style="color: #00ffff;">apt install snapd
snap install core
snap install dosbox-x
</span>
snap remove dosbox-x

congratz! 🙂

first problems: keyboard / some keys “:” not working

for example with older version it was no problem typing “ö” and getting (US-KeybLayout) a “:”

to work around this problem, open a terminal type “:”, copy it to clipboard, start dosbox-x and hit Ctrl+F6 to paste it in

How to install Windows 98 SE?

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

when the user wants to install windows 98 se

can get it from here: https://archive.org/details/win98se_201801

(but the serial is missing?)

  1. rename the iso to win98se.iso and put it into the user’s home directory
  2. create config file (also in user’s home directory):
    • <span style="color: #00ffff;">cd ~ wget <a href="https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt">https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt</a></span> <span style="color: #00ffff;">mv -v win98.conf_.txt win98.conf </span> 3. start it like this: - <span style="color: #00ffff;">dosbox -conf win98.conf</span>

the Ctrl+F6 hotkey comes in handy in the next steps, so simply copy and paste those instructions line by line:

# IMGMAKE hdd.img -t hd_8gig
<span style="color: #00ffff;">IMGMAKE hdd.img -t hd -size 16384 -force
IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
</span># copy CD content to C: because during setup it will ask for more files from the CD
<span style="color: #00ccff;">XCOPY D:\WIN98 C:\WIN98 /I /E</span>
<span style="color: #00ffff;">IMGMOUNT A -bootcd D BOOT A:
BOOT A:</span>

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

When the Windows installer reboots, and your back at the DOSBox-X Z:\> prompt. Close DOSBox-X and edit your win98.conf config file, and add the following lines in the [autoexec] section at the end of the file:

IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
BOOT C:

hotkeys / shortcuts: Special Keys

These are the default keybindings. They can be changed using the keymapper.

Note: If you’re using a Mac and are having trouble with the function keys, you may need to set your F keys to function as function keys. You can do this by going to System Preferences > Keyboard, going to the Keyboard area, and checking the “Use all F1, F2, etc” box.

KeyAction*ALT-ENTERSwitch to full-screen (and back).ALT-PAUSE (ALT-F16 on OS X)Pause emulation.CTRL-F1Show the keymapper configuration screen,CTRL-F4Update cached information about mounted drives. Useful if you changed something on a mounted drive outside of DOSBox. Also cycles through disk images mounted using IMGMOUNT.CTRL-F5Save a screenshot (goes to capture folder).CTRL-ALT-F5Start/Stop recording of AVI video. NOTE: You may well have some problems with this, please see Recording Video for more information.CTRL-F6Start/Stop recording sound output to a wave file (goes to capture folder).CTRL-ALT-F7Start/Stop recording of OPL commands.CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.CTRL-F7Decreases frameskip.CTRL-F8Increases frameskip.CTRL-F9Kill (close) DOSBox.CTRL-F10Capture/Release the mouse (if you need to use the mouse within DOSBox).CTRL-F11Decrease DOSBox cycles (slows down the emulation).CTRL-F12Increase DOSBox cycles (speeds up the emulation).ALT-F12*Unlock speed (turbo button).These default bindings are also documented in the README file accompanying the software.

Language Keys

When a keyboard layout is loaded:

CTRL+ALT+F2Switch between foreign layout and US layout.LEFT-ALT+RIGHT-SHIFTActivate dual layouts (for some keyboards, e.g. GK codepage 869 and RU codepage 808).LEFT-ALT+LEFT-SHIFTDeactivate dual layouts.For OS X you have to use additionally + [Applekey] for the same result

INS key is [Fn] + M on OS X.

For Linux you have to use additionally + [win] for the same result

src: https://www.dosbox.com/wiki/Special_Keys

Links:

thanks for inspiration: https://darrengoossens.wordpress.com/2021/01/20/dosbox-x-on-debian-10-compiling-and-running/

https://snapcraft.io/install/dosbox-x/debian

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

https://www.dosgames.com/game/duke-nukem-3d/ <- for the nerds that enjoyed this reckless guy

#linux #gnu #gnulinux #opensource #administration #sysops #wine #games #gnu-linux #game #iwar #space #simulator #spaceship

Originally posted at: https://dwaves.de/2022/04/21/gnu-linux-i-war-running-inside-gnu-linux-via-wine-run-old-dos-games-and-windows-games-from-wine-to-dosbox-x-how-to-compile-from-latest-src-first-problems-keyboard-some-keys-not-wo/

canoodle@nerdpol.ch

GNU Linux - i-war running inside GNU Linux via wine - run old dos games (and windo(w)s games) from wine to dosbox-x - how to compile from latest src - first problems: keyboard / some keys ":" not working

Remember Monkey Island and Tomb Raider 1? yeah… wanna play it on GNU Linux? yeeeessss!

and also this goody:

https://dwaves.de/2022/04/19/i-war-defiance-1997-how-to-setup-windows-7-and-windows-10-with-3d-acceleration-a-old-but-genious-scifi-space-ship-simulator-with-real-mass-drifting-inertia/

wine

[video width=”638″ height=”428″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-running-inside-gnu-linux-debian-11-via-wine.mp4″\]\[/video\]

nice!

although this is the software rendering mode… happy that 1) sound works 2) 3D graphics work 🙂

(the menus don’t work but that’s not a biggie for i-war professionals X-D)

it’s a a bit of fiddling & getting used to, but actually got iwar setup working and the game also… what does not (currently) work is changing CDs (game won’t detect CD change, even when it clearly changed).

wine per default creates an folder called

/home/user/.wine/drive_c

which resembles the C:\ drive while installing, it will store files there.

install:

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt update</span>
<span style="color: #00ffff;">apt install wine winetricks
</span># start the config tool<span style="color: #00ffff;">
winecfg
</span># start the config tool
# <a href="https://github.com/Winetricks/winetricks">https://github.com/Winetricks/winetricks</a><span style="color: #00ffff;">
winetricks
winetricks --optout
</span>
# mount cd image iso
<span style="color: #00ffff;">mkdir /media/user/cdrom</span>
<span style="color: #00ffff;">mount -t iso9660 -r -o loop /path/to/iwar-cd1.iso /media/user/cdrom

</span># wine setup, this will create a "prefix" "iwar"
# (aka a alias under which to store-remember the settings for this game)
<span style="color: #00ffff;">WINEPREFIX=${HOME}/games/iwar WINEARCH=win32 winecfg</span>
# in the dialogue
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png"><img alt="" class="alignnone size-full wp-image-25717" height="696" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg_select_windows_98se.png" width="607"></img></a>
# Applications → Windows Version → Windows 98 (hit apply)
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png"><img alt="" class="alignnone size-full wp-image-25718" height="506" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-graphics-emulate-a-virtual-desktop-enabled.png" width="591"></img></a>
# Graphics → Emulate a virtual desktop → Desktop size: 1024x786

# not sure if this is actually needed
<a href="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png"><img alt="" class="alignnone size-full wp-image-25719" height="513" src="https://dwaves.de/wp-content/uploads/2022/04/winecfg-cdrom-drive-d.png" width="612"></img></a>

# install game setup
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine /media/user/cdrom/SETUP.EXE
</span>
# the installer should come up and just work fine
# leave it at default install path

# try to start<strong> THE GAME :)</strong>
<span style="color: #00ffff;">cd "${HOME}/iwar/drive_c/Program Files/Particle Systems/Independence War"</span>
<span style="color: #00ffff;">WINEPREFIX=${HOME}/iwar wine IWar.exe</span>

<strong><a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25720" height="522" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice1-software-rendering-mode.jpg" width="761"></img></a> <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg"><img alt="" class="alignnone size-full wp-image-25721" height="511" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-working-nice2-software-rendering-mode.jpg" width="753"></img></a> <a href="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet.jpg"><img alt="" class="alignnone size-full wp-image-25722" height="502" src="https://dwaves.de/wp-content/uploads/2022/04/i-war-gnu-linux-debian-11-wine-menus-not-working-properly-yet.jpg" width="641"></img></a>
NICE! :) Space Pilots! ENGAGE!</strong>

playonlinux

same problem here… the game won’t detect CD change…

might also be interesting checking out:

https://www.playonlinux.com/en/

dosbox-x:

https://dosbox-x.com (also based on wine?)

compile instructions can be found here: https://github.com/joncampbell123/dosbox-x/blob/master/BUILD.md

<span style="color: #00ffff;">lsb_release -a</span>
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt search dosbox</span>
# installs old version
dosbox/stable<span style="color: #ff6600;"> 0.74-3-3</span> amd64
  x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS

# to install latest version compile from src: <a href="https://github.com/joncampbell123/dosbox-x/">https://github.com/joncampbell123/dosbox-x/</a>
<span style="color: #00ffff;">su - root
apt update
</span>
# install requirements
<span style="color: #00ffff;">apt install automake gcc g++ make libncurses-dev nasm libsdl-net1.2-dev libsdl2-net-dev libpcap-dev libslirp-dev fluidsynth libfluidsynth-dev libavdevice58 libavformat-dev libavcodec-dev libavcodec-extra libavcodec-extra58 libswscale-dev libfreetype-dev libxkbfile-dev libxrandr-dev
</span>
# clone dosbox source to local machine
<span style="color: #00ffff;">git clone https://github.com/joncampbell123/dosbox-x.git</span>

# compile as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">cd dosbox-x
./build-debug</span>
# install binaries as root
<span style="color: #00ffff;">su - root
make install</span>

# run as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">dosbox-x</span>

# it is located here
<span style="color: #00ffff;">/usr/bin/dosbox-x</span>

# alternative: snapd setup
<span style="color: #00ffff;">apt install snapd
snap install core
snap install dosbox-x
</span>
snap remove dosbox-x

congratz! 🙂

first problems: keyboard / some keys “:” not working

for example with older version it was no problem typing “ö” and getting (US-KeybLayout) a “:”

to work around this problem, open a terminal type “:”, copy it to clipboard, start dosbox-x and hit Ctrl+F6 to paste it in

How to install Windows 98 SE?

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

when the user wants to install windows 98 se

can get it from here: https://archive.org/details/win98se_201801

(but the serial is missing?)

  1. rename the iso to win98se.iso and put it into the user’s home directory
  2. create config file (also in user’s home directory):
    • <span style="color: #00ffff;">cd ~ wget <a href="https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt">https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt</a></span> <span style="color: #00ffff;">mv -v win98.conf_.txt win98.conf </span> 3. start it like this: - <span style="color: #00ffff;">dosbox -conf win98.conf</span>

the Ctrl+F6 hotkey comes in handy in the next steps, so simply copy and paste those instructions line by line:

# IMGMAKE hdd.img -t hd_8gig
<span style="color: #00ffff;">IMGMAKE hdd.img -t hd -size 16384 -force
IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
</span># copy CD content to C: because during setup it will ask for more files from the CD
<span style="color: #00ccff;">XCOPY D:\WIN98 C:\WIN98 /I /E</span>
<span style="color: #00ffff;">IMGMOUNT A -bootcd D BOOT A:
BOOT A:</span>

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

When the Windows installer reboots, and your back at the DOSBox-X Z:\> prompt. Close DOSBox-X and edit your win98.conf config file, and add the following lines in the [autoexec] section at the end of the file:

IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
BOOT C:

hotkeys / shortcuts: Special Keys

These are the default keybindings. They can be changed using the keymapper.

Note: If you’re using a Mac and are having trouble with the function keys, you may need to set your F keys to function as function keys. You can do this by going to System Preferences > Keyboard, going to the Keyboard area, and checking the “Use all F1, F2, etc” box.

KeyAction*ALT-ENTERSwitch to full-screen (and back).ALT-PAUSE (ALT-F16 on OS X)Pause emulation.CTRL-F1Show the keymapper configuration screen,CTRL-F4Update cached information about mounted drives. Useful if you changed something on a mounted drive outside of DOSBox. Also cycles through disk images mounted using IMGMOUNT.CTRL-F5Save a screenshot (goes to capture folder).CTRL-ALT-F5Start/Stop recording of AVI video. NOTE: You may well have some problems with this, please see Recording Video for more information.CTRL-F6Start/Stop recording sound output to a wave file (goes to capture folder).CTRL-ALT-F7Start/Stop recording of OPL commands.CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.CTRL-F7Decreases frameskip.CTRL-F8Increases frameskip.CTRL-F9Kill (close) DOSBox.CTRL-F10Capture/Release the mouse (if you need to use the mouse within DOSBox).CTRL-F11Decrease DOSBox cycles (slows down the emulation).CTRL-F12Increase DOSBox cycles (speeds up the emulation).ALT-F12*Unlock speed (turbo button).These default bindings are also documented in the README file accompanying the software.

Language Keys

When a keyboard layout is loaded:

CTRL+ALT+F2Switch between foreign layout and US layout.LEFT-ALT+RIGHT-SHIFTActivate dual layouts (for some keyboards, e.g. GK codepage 869 and RU codepage 808).LEFT-ALT+LEFT-SHIFTDeactivate dual layouts.For OS X you have to use additionally + [Applekey] for the same result

INS key is [Fn] + M on OS X.

For Linux you have to use additionally + [win] for the same result

src: https://www.dosbox.com/wiki/Special_Keys

Links:

thanks for inspiration: https://darrengoossens.wordpress.com/2021/01/20/dosbox-x-on-debian-10-compiling-and-running/

https://snapcraft.io/install/dosbox-x/debian

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

#linux #gnu #gnulinux #opensource #administration #sysops #wine #games #gnu-linux #game #iwar #space #simulator #spaceship

Originally posted at: https://dwaves.de/2022/04/21/gnu-linux-i-war-running-inside-gnu-linux-via-wine-run-old-dos-games-and-windows-games-from-wine-to-dosbox-x-how-to-compile-from-latest-src-first-problems-keyboard-some-keys-not-wo/

canoodle@nerdpol.ch

GNU Linux - i-war running inside GNU Linux via wine - run old dos games (and windo(w)s games) from wine to dosbox-x - how to compile from latest src - first problems: keyboard / some keys ":" not working

Remember Monkey Island and Tomb Raider 1? yeah… wanna play it on GNU Linux? yeeeessss!

and also this goody:

https://dwaves.de/2022/04/19/i-war-defiance-1997-how-to-setup-windows-7-and-windows-10-with-3d-acceleration-a-old-but-genious-scifi-space-ship-simulator-with-real-mass-drifting-inertia/

wine

[video width=”638″ height=”428″ mp4=”https://dwaves.de/wp-content/uploads/2022/04/i-war-running-inside-gnu-linux-debian-11-via-wine.mp4″\]\[/video\]

nice!

although this is the software rendering mode… happy that 1) sound works 2) 3D graphics work 🙂

(the menus don’t work but that’s not a biggie for i-war professionals X-D)

it’s a a bit of fiddling & getting used to, but actually got iwar setup working and the game also… what does not (currently) work is changing CDs (game won’t detect CD change, even when it clearly changed).

wine per default creates an folder called

/home/user/.wine/drive_c

which resembles the C:\ drive while installing, it will store files there.

install:

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt update</span>
<span style="color: #00ffff;">apt install wine winetricks
</span># start the config tool<span style="color: #00ffff;">
winecfg
</span># start the config tool
# <a href="https://github.com/Winetricks/winetricks">https://github.com/Winetricks/winetricks</a><span style="color: #00ffff;">
winetricks
winetricks --optout
</span>
# mount cd image iso
<span style="color: #00ffff;">mkdir /media/user/cdrom</span>
<span style="color: #00ffff;">mount -t iso9660 -r -o loop /path/to/iwar-cd1.iso /media/user/cdrom

</span># start setup<span style="color: #00ffff;">
wine /media/user/cdrom/setup.exe
</span># the installer should come up
# install to C:\games\iwar
# (no filenames with spaces)

# when done, unmount<span style="color: #00ffff;">
umount /media/user/cdrom

</span># for some reason, was only able to start the game via<span style="color: #00ffff;">
wine explorer
<a href="https://dwaves.de/wp-content/uploads/2022/04/wine-explorer-starting-game.png"><img alt="" class="alignnone size-full wp-image-25707" height="542" src="https://dwaves.de/wp-content/uploads/2022/04/wine-explorer-starting-game.png" width="707"></img></a>
</span>-> navigate to C:\games\iwar\IWar.exe -> r-click - open

playonlinux

same problem here… the game won’t detect CD change…

might also be interesting checking out:

https://www.playonlinux.com/en/

dosbox-x:

https://dosbox-x.com (also based on wine?)

compile instructions can be found here: https://github.com/joncampbell123/dosbox-x/blob/master/BUILD.md

<span style="color: #00ffff;">lsb_release -a</span>
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

<span style="color: #00ffff;">su - root</span>
<span style="color: #00ffff;">apt search dosbox</span>
# installs old version
dosbox/stable<span style="color: #ff6600;"> 0.74-3-3</span> amd64
  x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS

# to install latest version compile from src: <a href="https://github.com/joncampbell123/dosbox-x/">https://github.com/joncampbell123/dosbox-x/</a>
<span style="color: #00ffff;">su - root
apt update
</span>
# install requirements
<span style="color: #00ffff;">apt install automake gcc g++ make libncurses-dev nasm libsdl-net1.2-dev libsdl2-net-dev libpcap-dev libslirp-dev fluidsynth libfluidsynth-dev libavdevice58 libavformat-dev libavcodec-dev libavcodec-extra libavcodec-extra58 libswscale-dev libfreetype-dev libxkbfile-dev libxrandr-dev
</span>
# clone dosbox source to local machine
<span style="color: #00ffff;">git clone https://github.com/joncampbell123/dosbox-x.git</span>

# compile as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">cd dosbox-x
./build-debug</span>
# install binaries as root
<span style="color: #00ffff;">su - root
make install</span>

# run as non-root
<span style="color: #00ffff;">Ctrl+D</span> - log out root
<span style="color: #00ffff;">dosbox-x</span>

# it is located here
<span style="color: #00ffff;">/usr/bin/dosbox-x</span>

# alternative: snapd setup
<span style="color: #00ffff;">apt install snapd
snap install core
snap install dosbox-x
</span>
snap remove dosbox-x

congratz! 🙂

first problems: keyboard / some keys “:” not working

for example with older version it was no problem typing “ö” and getting (US-KeybLayout) a “:”

to work around this problem, open a terminal type “:”, copy it to clipboard, start dosbox-x and hit Ctrl+F6 to paste it in

How to install Windows 98 SE?

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

when the user wants to install windows 98 se

can get it from here: https://archive.org/details/win98se_201801

(but the serial is missing?)

  1. rename the iso to win98se.iso and put it into the user’s home directory
  2. create config file (also in user’s home directory):
    • <span style="color: #00ffff;">cd ~ wget <a href="https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt">https://dwaves.de/wp-content/uploads/2022/04/win98.conf_.txt</a></span> <span style="color: #00ffff;">mv -v win98.conf_.txt win98.conf </span> 3. start it like this: - <span style="color: #00ffff;">dosbox -conf win98.conf</span>

the Ctrl+F6 hotkey comes in handy in the next steps, so simply copy and paste those instructions line by line:

# IMGMAKE hdd.img -t hd_8gig
<span style="color: #00ffff;">IMGMAKE hdd.img -t hd -size 16384 -force
IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
</span># copy CD content to C: because during setup it will ask for more files from the CD
<span style="color: #00ccff;">XCOPY D:\WIN98 C:\WIN98 /I /E</span>
<span style="color: #00ffff;">IMGMOUNT A -bootcd D BOOT A:
BOOT A:</span>

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98#_installation_method_2

When the Windows installer reboots, and your back at the DOSBox-X Z:\> prompt. Close DOSBox-X and edit your win98.conf config file, and add the following lines in the [autoexec] section at the end of the file:

IMGMOUNT C hdd.img
IMGMOUNT D win98.iso
BOOT C:

hotkeys / shortcuts: Special Keys

These are the default keybindings. They can be changed using the keymapper.

Note: If you’re using a Mac and are having trouble with the function keys, you may need to set your F keys to function as function keys. You can do this by going to System Preferences > Keyboard, going to the Keyboard area, and checking the “Use all F1, F2, etc” box.

KeyAction*ALT-ENTERSwitch to full-screen (and back).ALT-PAUSE (ALT-F16 on OS X)Pause emulation.CTRL-F1Show the keymapper configuration screen,CTRL-F4Update cached information about mounted drives. Useful if you changed something on a mounted drive outside of DOSBox. Also cycles through disk images mounted using IMGMOUNT.CTRL-F5Save a screenshot (goes to capture folder).CTRL-ALT-F5Start/Stop recording of AVI video. NOTE: You may well have some problems with this, please see Recording Video for more information.CTRL-F6Start/Stop recording sound output to a wave file (goes to capture folder).CTRL-ALT-F7Start/Stop recording of OPL commands.CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.CTRL-F7Decreases frameskip.CTRL-F8Increases frameskip.CTRL-F9Kill (close) DOSBox.CTRL-F10Capture/Release the mouse (if you need to use the mouse within DOSBox).CTRL-F11Decrease DOSBox cycles (slows down the emulation).CTRL-F12Increase DOSBox cycles (speeds up the emulation).ALT-F12*Unlock speed (turbo button).These default bindings are also documented in the README file accompanying the software.

Language Keys

When a keyboard layout is loaded:

CTRL+ALT+F2Switch between foreign layout and US layout.LEFT-ALT+RIGHT-SHIFTActivate dual layouts (for some keyboards, e.g. GK codepage 869 and RU codepage 808).LEFT-ALT+LEFT-SHIFTDeactivate dual layouts.For OS X you have to use additionally + [Applekey] for the same result

INS key is [Fn] + M on OS X.

For Linux you have to use additionally + [win] for the same result

src: https://www.dosbox.com/wiki/Special_Keys

Links:

thanks for inspiration: https://darrengoossens.wordpress.com/2021/01/20/dosbox-x-on-debian-10-compiling-and-running/

https://snapcraft.io/install/dosbox-x/debian

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

#linux #gnu #gnulinux #opensource #administration #sysops #wine #games #gnu-linux #game #iwar #space #simulator #spaceship

Originally posted at: https://dwaves.de/2022/04/21/gnu-linux-i-war-running-inside-gnu-linux-via-wine-run-old-dos-games-and-windows-games-from-wine-to-dosbox-x-how-to-compile-from-latest-src-first-problems-keyboard-some-keys-not-wo/

canoodle@nerdpol.ch

wie privatsphäre online verbessern mit tor und kostenloser vpn firmware für router / How to protect privacy online with tor and free vpn firmware for routers - how to setup tor node / Как защитить конфиденциальность онлайн с помощью tor и бесплатной прошивки vpn для роутеров - как настроить tor узел / Як захистити конфіденційність в Інтернеті за допомогою tor і безкоштовної прошивки VPN для маршрутизаторів - як налаштувати вузол tor / Cómo proteger la privacidad en línea con tor y firmware vpn gratuito para enrutadores: cómo configurar el nodo tor / Comment protéger la confidentialité en ligne avec tor et le firmware VPN gratuit pour routeurs - comment configurer le nœud tor / 如何使用路由器的tor和免费VPN固件在线保护隐私 - 如何设置tor节点

https://www.whatismyip.com/

https://www.whatismyip.com/

warning:

  • EN: ATTENTION! ABSOLUTE IT SECURITY AND ONLINE PRIVACY DO NOT EXIST! NO HOWTO IS PERFECT! IF THE PC/LAPTOP/SMARTPHONE ALREADY HAS SPYWARE PREINSTALLED (WINDOWS OR OSX) A VPNs & FIREWALLS ARE BETTER THAN NOTHING, BUT WILL NOT GIVE ABSOLUTE PROTECTION! YOU HAVE BEEN WARNED!
  • DE: ACHTUNG! DIE ABSOLUTE IT SICHERHEIT UND ONLINE PRIVATSPHÄRE GIBT ES NICHT! KEIN HOWTO IST PERFEKT! WENN DER PC/LAPTOP/SMARTPHONE SCHON SPYWARE (WINDOWS ODER OSX) VORINSTALLIERT HAT, BRINGT DAS GANZE AUCH NICHT VIEL! SIE WURDEN GEWARNT!
  • RU: ВНИМАНИЕ! АБСОЛЮТНОЙ ИТ-БЕЗОПАСНОСТИ И КОНФИДЕНЦИАЛЬНОСТИ В ИНТЕРНЕТЕ НЕ СУЩЕСТВУЕТ! НЕТ HOWTO ИДЕАЛЬНО! ЕСЛИ НА ПК / НОУТБУКЕ / СМАРТФОНЕ УЖЕ ПРЕДУСТАНОВЛЕНО ШПИОНСКОЕ ПО (WINDOWS ИЛИ OSX), VPN И БРАНДМАУЭРЫ ЛУЧШЕ, ЧЕМ НИЧЕГО, НО НЕ ДАДУТ АБСОЛЮТНОЙ ЗАЩИТЫ! ВЫ ПРЕДУПРЕЖДЕНЫ!
  • UA: УВАГА! АБСОЛЮТНОЇ ІТ-БЕЗПЕКИ ТА КОНФІДЕНЦІЙНОСТІ В ІНТЕРНЕТІ НЕ ІСНУЄ! ЖОДНЕ ХАУТО НЕ Є ІДЕАЛЬНИМ! ЯКЩО НА ПК/НОУТБУЦІ/СМАРТФОНІ ВЖЕ Є ПОПЕРЕДНЬО ІНСТАЛЬОВАНІ ШПИГУНСЬКІ ПРОГРАМИ (WINDOWS АБО OSX), VPN & FIREWALLS КРАЩЕ, НІЖ НІЧОГО, АЛЕ НЕ ДАСТЬ АБСОЛЮТНОГО ЗАХИСТУ! ВАС ПОПЕРЕДИЛИ!
  • ES: ¡ATENCIÓN! ¡LA SEGURIDAD ABSOLUTA DE TI Y LA PRIVACIDAD EN LÍNEA NO EXISTEN! ¡NO HOWTO ES PERFECTO! SI LA PC / COMPUTADORA PORTÁTIL / TELÉFONO INTELIGENTE YA TIENE SPYWARE PREINSTALADO (WINDOWS U OSX) UNA VPN Y FIREWALLS SON MEJORES QUE NADA, ¡PERO NO DARÁN PROTECCIÓN ABSOLUTA! ¡HAS SIDO ADVERTIDO!
  • FR: ATTENTION! LA SÉCURITÉ INFORMATIQUE ABSOLUE ET LA CONFIDENTIALITÉ EN LIGNE N’EXISTENT PAS! NO HOWTO EST PARFAIT! SI LE PC / ORDINATEUR PORTABLE / SMARTPHONE A DÉJÀ UN LOGICIEL ESPION PRÉINSTALLÉ (WINDOWS OU OSX), UN VPN ET DES PARE-FEU VALENT MIEUX QUE RIEN, MAIS NE DONNERONT PAS UNE PROTECTION ABSOLUE! VOUS ÊTES PRÉVENUS !
  • CN: 注意力!绝对的IT安全和在线隐私不存在!没有如何是完美的!如果PC/笔记本电脑/智能手机已经预装了间谍软件(WINDOWS或OSX),那么VPN和防火墙总比没有好,但不会提供绝对的保护!你被警告了!

start:

  • EN: Parallel to the real war, an information war is taking place on the Internet, which threatens the privacy of journalists and whistleblowers even more than usual, what possibilities are there to protect oneself?
    • Snowden: “At the end of the day, saying you don’t care about privacy because you have nothing to hide is no different than saying you don’t care about free speech because you have nothing to say.”
  • DE: Parallel zum realen Krieg findet ein Informations Krieg im Internet statt, welcher die Privatsphäre von Journalisten und Whistleblowern noch mehr bedroht als sonst, welche möglichkeiten gibt es sich zu schützen?
    • Snowden: “zu sagen, dass einem Privatsphäre egal ist, weil man nichts zu verbergen hat, ist nichts anderes, als zu sagen, dass einem die Redefreiheit egal ist weil man nichts zu sagen hat”
  • RU: Параллельно с реальной войной в интернете идет информационная война, которая угрожает частной жизни журналистов и осведомителей еще больше, чем обычно, какие есть возможности защитить себя?
    • Сноуден: В конце концов, сказать, что вы не заботитесь о конфиденциальности, потому что вам нечего скрывать, ничем не отличается от того, чтобы сказать, что вы не заботитесь о свободе слова, потому что вам нечего сказать.
  • UA: Паралельно з реальною війною в інтернеті йде інформаційна війна, яка загрожує приватному життю журналістів і викривачів навіть більше, ніж зазвичай, які можливості є, щоб захистити себе?
    • Сноуден: Зрештою, говорити, що ви не дбаєте про приватність, тому що вам нема чого приховувати, нічим не відрізняється від того, щоб сказати, що ви не дбаєте про свободу слова, тому що вам нема чого сказати.
  • ES: Paralelamente a la guerra real, se está produciendo una guerra de información en Internet, que amenaza la privacidad de periodistas y denunciantes aún más de lo habitual, ¿qué posibilidades hay para protegerse?
    • Snowden: Al final del día, decir que no te importa la privacidad porque no tienes nada que ocultar no es diferente a decir que no te importa la libertad de expresión porque no tienes nada que decir.
  • FR : Parallèlement à la vraie guerre, une guerre de l’information se déroule sur Internet, qui menace encore plus que d’habitude la vie privée des journalistes et des lanceurs d’alerte, quelles sont les possibilités de se protéger?
    • Snowden : En fin de compte, dire que vous ne vous souciez pas de la vie privée parce que vous n’avez rien à cacher n’est pas différent de dire que vous ne vous souciez pas de la liberté d’expression parce que vous n’avez rien à dire.
  • CN: 在真正的战争的同时,互联网上正在发生一场信息战,这比平时更威胁记者和举报人的隐私,有什么可能保护自己?
    • 斯诺登:归根结底,说你不关心隐私,因为你没有什么可隐瞒的,这与说你不关心言论自由没有什么不同,因为你无话可说。

0) dns servers:

test: https://dnsleaktest.com/

https://libredns.gr/

https://libredns.gr/

  • EN: there is a “phone book” server called DNS sever which are contacted before www.domain.com is loaded with the question: “which ip phone number has www.domain.com?” You have to be able to trust the DNS server, because it knows which websites have been visited.
  • DE: es gibt einen “Telefonbuch” Server genannt DNS sever welche vor jeder www.domain.com anfragen gefragt wird: welche ip-telefonnummer hat denn www.domain.com? Man muss dem DNS server vertrauen können, weil dieser weiss welche websites besucht wurden.
  • RU: Существует сервер «телефонной книги», называемый DNS-сервером, с которым связываются перед загрузкой www.domain.com с вопросом: «какой IP-номер телефона www.domain.com?» Вы должны быть в состоянии доверять DNS-серверу, потому что он знает, какие веб-сайты были посещены.
  • UA: існує сервер “телефонної книги” під назвою DNS sever, з яким зв’язуються, перш ніж www.domain.com завантажується з питанням: “який ip-номер телефону має www.domain.com?” Ви повинні бути в змозі довіряти DNS-серверу, тому що він знає, які веб-сайти були відвідані.
  • ES: hay un servidor de “libreta de teléfonos” llamado DNS sever que se contacta antes de www.domain.com se carga con la pregunta: “¿qué número de teléfono IP tiene www.domain.com?” Debe poder confiar en el servidor DNS, porque sabe qué sitios web se han visitado.
  • FR: il y a un serveur « annuaire téléphonique » appelé DNS sever qui est contacté avant que www.domain.com ne soit chargé avec la question: « quel numéro de téléphone IP a www.domain.com? » Vous devez pouvoir faire confiance au serveur DNS, car il sait quels sites Web ont été visités.
  • CN: 有一个名为DNS sever的”电话簿”服务器,在加载 www.domain.com 之前,我们会联系该服务器:”哪个IP电话号码 www.domain.com?您必须能够信任DNS服务器,因为它知道访问过哪些网站。

1) tor browser bundle

https://www.torproject.org/download/

https://www.torproject.org/download/

https://www.torproject.org/download/

  • EN: tor-browser-bundle, it is very simple to install and available for Windows, OSX and GNU Linux, it already has an alternative DNS server installed, please donate https://donate.torproject.org/ so that the project can be improved.
  • DE: tor-browser-bundle nutzen, es ist sehr einfach und für Windows, OSX und GNU Linux erhältlich, tor-browser-bundle hat schon einen alternativen DNS server eingebaut, bitte spenden https://donate.torproject.org/ damit das projekt verbessert werden kann.
  • RU: tor-browser-bundle, он очень прост в установке и доступен для Windows, OSX и GNU Linux, у него уже установлен альтернативный DNS-сервер, пожалуйста, пожертвуйте https://donate.torproject.org/, чтобы проект можно было улучшить.
  • UA: tor-browser-bundle, він дуже простий в установці і доступний для Windows, OSX і GNU Linux, у нього вже встановлений альтернативний DNS-сервер, будь ласка, пожертвуйте https://donate.torproject.org/, щоб проект можна було вдосконалити.
  • ES: tor-browser-bundle, es muy sencillo de instalar y está disponible para Windows, OSX y GNU Linux, ya tiene un servidor DNS alternativo instalado, por favor done https://donate.torproject.org/ para que el proyecto pueda ser mejorado.
  • FR: tor-browser-bundle, il est très simple à installer et disponible pour Windows, OSX et GNU Linux, il a déjà un serveur DNS alternatif installé, veuillez faire un don https://donate.torproject.org/ afin que le projet puisse être amélioré.
  • CN: tor-browser-bundle,它安装非常简单,可用于Windows,OSX和GNU Linux,它已经安装了替代DNS服务器,请捐赠 https://donate.torproject.org/ 以便可以改进项目。

2) freifunk firmware vpn

https://firmware.freifunk-ulm.de/

https://openwrt.org/toh/hwdata/tp-link/tp-link_tl-wr1043nd_v4

https://openwrt.org/toh/hwdata/tp-link/tp-link_tl-wr1043nd_v4

CHINA: https://openwrt.org/toh/hwdata/tp-link/tp-link_tl-wr1043nd_v4

CHINA: https://openwrt.org/toh/hwdata/tp-link/tp-link_tl-wr1043n_v5

CHINA: Outdoor AP TP-Link CPE210/CPE220 https://openwrt.org/toh/tp-link/cpe210

USA: https://openwrt.org/toh/netgear/r6120

GERMANY: https://openwrt.org/toh/avm/avm_fritz_box_4040

https://wiki.freifunk-mwu.de/w/Welchen_Router_kaufe_ich

https://wiki.freifunk-mwu.de/w/Welchen_Router_kaufe_ich

  • DE: hier updated man die firmware eines routers mit einer freifunk firmware, welche einen kostenlosen VPN tunnel entweder über Deutschland oder Schweden auf baut, man muss ein passende router modell haben (sehr günstig bei ebay).
  • EN: with freifunk the user updates a router with the freifunk firmware, which has a build-in free VPN tunnel via Germany or Sweden, the user needs a compatible router model.
  • RU: с freifunk пользователь обновляет маршрутизатор с прошивкой freifunk, которая имеет встроенный бесплатный VPN-туннель через Германию или Швецию, пользователю нужна совместимая модель маршрутизатора.
  • UA: з freifunk користувач оновлює маршрутизатор за допомогою прошивки freifunk, яка має вбудований безкоштовний VPN-тунель через Німеччину або Швецію, користувачеві потрібна сумісна модель маршрутизатора.
  • ES: con freifunk el usuario actualiza un router con el firmware freifunk, que tiene un túnel VPN gratuito incorporado a través de Alemania o Suecia, el usuario necesita un modelo de router compatible.
  • FR: avec freifunk, l’utilisateur met à jour un routeur avec le firmware freifunk, qui dispose d’un tunnel VPN gratuit intégré via l’Allemagne ou la Suède, l’utilisateur a besoin d’un modèle de routeur compatible.
  • CN: 使用freifunk,用户使用freifunk固件更新路由器,该固件具有通过德国或瑞典的内置免费VPN隧道,用户需要兼容的路由器型号。

3) tor server node

https://community.torproject.org/relay/setup/bridge/debian-ubuntu/

3.1) auto updates

  • EN: there should be as few other services as possible running on the vps, the more software is installed, the more problems there could be with automatic updates.
  • DE: es sollte auf der vps möglichst keine/wenig andere services laufen, umso mehr software installiert ist, umso mehr probleme könnte es bei automatischen updates geben.
  • RU: на vps должно быть как можно меньше других сервисов, чем больше программного обеспечения установлено, тем больше проблем может быть с автоматическими обновлениями.
  • UA: на vps має працювати якомога менше інших сервісів, чим більше програмного забезпечення встановлено, тим більше проблем може бути з автоматичними оновленнями.
  • ES: debería haber la menor cantidad posible de otros servicios ejecutándose en el vps, cuanto más software se instale, más problemas podría haber con las actualizaciones automáticas.
  • FR: il devrait y avoir le moins d’autres services possible fonctionnant sur les vps, plus il y a de logiciels installés, plus il pourrait y avoir de problèmes avec les mises à jour automatiques.
  • CN: vps上运行的其他服务应该尽可能少,安装的软件越多,自动更新的问题就越多。

crontab:

<span style="color: #00ffff;">lsb_release -a</span>; # tested
Description: Debian GNU/Linux 11 (bullseye)<span style="color: #00ffff;">

su - root</span>
<span style="color: #00ffff;">crontab -e</span>; # will run the update process every night at 3:00 am
<span style="color: #ff6600;">0 3 * * * /scripts/update.sh
</span>

update script:

<span style="color: #00ffff;">vim /scripts/update.sh</span>
<span style="color: #ff6600;">#!/bin/bash

echo "=== attempting automatic daily update on $(date '+%Y-%m-%d-%H:%M:%S') ===" >> /scripts/update.sh.log

apt update >> /scripts/update.sh.log
apt -y upgrade >> /scripts/update.sh.log
apt -y autoremove

echo "=== fine ===" >> /scripts/update.sh.log
echo "" >> /scripts/update.sh.log
</span>
  • eine mögliche tor config file könnte so aussehen:
<span style="color: #00ffff;">vim /etc/tor/torrc</span>

## Configuration file for a typical Tor user
## Last updated 9 October 2013 for Tor 0.2.5.2-alpha.
## (may or may not work for much older or much newer versions of Tor.)
##
## Lines that begin with "## " try to explain what's going on. Lines
## that begin with just "#" are disabled commands: you can enable them
## by removing the "#" symbol.
##
## See 'man tor', or https://www.torproject.org/docs/tor-manual.html,
## for more options you can use in this file.
##
## Tor will look for this file in various places based on your platform:
## https://www.torproject.org/docs/faq#torrc

## Tor opens a socks proxy on port 9050 by default -- even if you don't
## configure one below. Set "SocksPort 0" if you plan to run Tor only
## as a relay, and not make any local application connections yourself.
<span style="color: #ff6600;">SocksPort 0</span>
#SocksPort 9050 # Default: Bind to localhost:9050 for local connections.
#SocksPort 192.168.0.1:9100 # Bind to this address:port too.

## Entry policies to allow/deny SOCKS requests based on IP address.
## First entry that matches wins. If no SocksPolicy is set, we accept
## all (and only) requests that reach a SocksPort. Untrusted users who
## can access your SocksPort may be able to learn about the connections
## you make.
#SocksPolicy accept 192.168.0.0/16
#SocksPolicy reject *

## Logs go to stdout at level "notice" unless redirected by something
## else, like one of the below lines. You can have as many Log lines as
## you want.
##
## We advise using "notice" in most cases, since anything more verbose
## may provide sensitive information to an attacker who obtains the logs.
##
## Send all messages of level 'notice' or higher to /var/log/tor/notices.log
<span style="color: #ff6600;">Log notice file /var/log/tor/notices.log</span>
## Send every possible message to /var/log/tor/debug.log
# Log debug file /var/log/tor/debug.log
## Use the system log instead of Tor's logfiles
#Log notice syslog
## To send all messages to stderr:
#Log debug stderr

## Uncomment this to start the process in the background... or use
## --runasdaemon 1 on the command line. This is ignored on Windows;
## see the FAQ entry if you want Tor to run as an NT service.
#RunAsDaemon 1

## The directory for keeping all the keys/etc. By default, we store
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.
#DataDirectory /var/lib/tor

## The port on which Tor will listen for local connections from Tor
## controller applications, as documented in control-spec.txt.
#ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
#HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C
#CookieAuthentication 1

############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

################ This section is just for relays #####################
#
## See https://www.torproject.org/docs/tor-doc-relay for details.

## Required: what port to advertise for incoming Tor connections.
ORPort 9001
## If you want to listen on a port other than the one advertised in
## ORPort (e.g. to advertise 443 but bind to 9090), you can do it as
## follows.  You'll need to do ipchains or other port forwarding
## yourself to make this work.
#ORPort 443 NoListen
#ORPort 127.0.0.1:9090 NoAdvertise

## The IP address or full DNS name for incoming connections to your
## relay. Leave commented out and Tor will guess.
#Address noname.example.com

## If you have multiple network interfaces, you can specify one for
## outgoing traffic to use.
# OutboundBindAddress 10.0.0.5

## A handle for your relay, so people don't have to refer to it by key.
<span style="color: #ff6600;">Nickname NICKNAMEOFTHETORNODE</span>

## Define these to limit how much relayed traffic you will allow. Your
## own traffic is still unthrottled. Note that RelayBandwidthRate must
## be at least 20 KB.
## Note that units for these config options are bytes per second, not bits
## per second, and that prefixes are binary prefixes, i.e. 2^10, 2^20, etc.
<span style="color: #ff6600;">RelayBandwidthRate 5000 KB  # Throttle traffic to 100KB/s (800Kbps)
RelayBandwidthBurst 7000 KB # But allow bursts up to 200KB/s (1600Kbps)</span>

## Use these to restrict the maximum traffic per day, week, or month.
## Note that this threshold applies separately to sent and received bytes,
## not to their sum: setting "4 GB" may allow up to 8 GB total before
## hibernating.
##
## Set a maximum of 4 gigabytes each way per period.
<span style="color: #ff6600;">AccountingMax 400 GB</span>
## Each period starts daily at midnight (AccountingMax is per day)
<span style="color: #ff6600;">AccountingStart day 00:00</span>
## Each period starts on the 3rd of the month at 15:00 (AccountingMax
## is per month)
#AccountingStart month 3 15:00

## Administrative contact information for this relay or bridge. This line
## can be used to contact you if your relay or bridge is misconfigured or
## something else goes wrong. Note that we archive and publish all
## descriptors containing these lines and that Google indexes them, so
## spammers might also collect them. You may want to obscure the fact that
## it's an email address and/or generate a new address for this purpose.
#ContactInfo Random Person 
## You might also include your PGP or GPG fingerprint if you have one:
<span style="color: #ff6600;">ContactInfo 0xFFFFFFFF user <privacy@yourdomain.com></span>

## Uncomment this to mirror directory information for others. Please do
## if you have enough bandwidth.
#DirPort 9030 # what port to advertise for directory connections
## If you want to listen on a port other than the one advertised in
## DirPort (e.g. to advertise 80 but bind to 9091), you can do it as
## follows.  below too. You'll need to do ipchains or other port
## forwarding yourself to make this work.
#DirPort 80 NoListen
#DirPort 127.0.0.1:9091 NoAdvertise
## Uncomment to return an arbitrary blob of html on your DirPort. Now you
## can explain what Tor is if anybody wonders why your IP address is
## contacting them. See contrib/tor-exit-notice.html in Tor's source
## distribution for a sample.
#DirPortFrontPage /etc/tor/tor-exit-notice.html

## Uncomment this if you run more than one Tor relay, and add the identity
## key fingerprint of each Tor relay you control, even if they're on
## different networks. You declare it here so Tor clients can avoid
## using more than one of your relays in a single circuit. See
## https://www.torproject.org/docs/faq#MultipleRelays
## However, you should never include a bridge's fingerprint here, as it would
## break its concealability and potentionally reveal its IP/TCP address.
#MyFamily $keyid,$keyid,...

## A comma-separated list of exit policies. They're considered first
## to last, and the first match wins. If you want to _replace_
## the default exit policy, end this with either a reject *:* or an
## accept *:*. Otherwise, you're _augmenting_ (prepending to) the
## default exit policy. Leave commented to just use the default, which is
## described in the man page or at
## https://www.torproject.org/documentation.html
##
## Look at https://www.torproject.org/faq-abuse.html#TypicalAbuses
## for issues you might encounter if you use the default exit policy.
##
## If certain IPs and ports are blocked externally, e.g. by your firewall,
## you should update your exit policy to reflect this -- otherwise Tor
## users will be told that those destinations are down.
##
## For security, by default Tor rejects connections to private (local)
## networks, including to your public IP address. See the man page entry
## for ExitPolicyRejectPrivate if you want to allow "exit enclaving".
##
#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports but no more
#ExitPolicy accept *:119 # accept nntp as well as default exit policy
<span style="color: #ff6600;">ExitPolicy reject *:*</span> # no exits allowed

## Bridge relays (or "bridges") are Tor relays that aren't listed in the
## main directory. Since there is no complete public list of them, even an
## ISP that filters connections to all the known Tor relays probably
## won't be able to block all the bridges. Also, websites won't treat you
## differently because they won't know you're running Tor. If you can
## be a real relay, please do; but if not, be a bridge!
<span style="color: #ff6600;">BridgeRelay 1</span>
## By default, Tor will advertise your bridge to users through various
## mechanisms like <a href="https://bridges.torproject.org/">https://bridges.torproject.org/</a>. If you want to run
## a private bridge, for example because you'll give out your bridge
## address manually to your friends, uncomment this line:
#PublishServerDescriptor 0

viel Spass!

have fun!

Веселитесь!

Розважатися!

¡Que te diviertas!

Amusez-vous!

玩得愉快!

Links:

search the user’s tor node here: (if BridgeRelay 1) https://metrics.torproject.org/rs.html

it has nice graph that shows bandwidth usage etc.

https://tb-manual.torproject.org/bridges/

https://mastodon.social/@torproject

https://dnsleaktest.com/

#linux #gnu #gnulinux #opensource #administration #sysops #tor #vpn #privacy #dns #howto #surveillance #1984

Originally posted at: https://dwaves.de/2022/03/31/wie-privatsphare-online-verbessern-mit-tor-und-kostenloser-vpn-firmware-fur-router-how-to-protect-privacy-online-with-tor-and-free-vpn-firmware-for-routers-how-to-setup-tor-node-%d0%ba%d0%b0/

canoodle@nerdpol.ch

how to setup basic LAMP stack GNU Linux Debian 11 - (Apache2 php8.1 MariaDB) (how to install xdebug - step debugging php requests in eclipse (LAMP web development stack))

the possibility to step (!) debug requests, as they appear on the server is a neat feature.

  • installed GNU Linux Debian 11 + MATE Desktop
  • installed apache2 + php8.1
  • installed eclipse
  • installed xdebug
    • and as usually, xdebug + eclipse do not like to cooperate out of the box, why?
    • because they can not agree on what port to use
      • latest eclipse wants to connect to xdebug per default on port 9000
      • latest xdebug wants to connect to eclipse per default on por 9003
      • c’mon guys. get in contact with each other and set a standard
      • (this has cost me about 2h of debugging around eclipse preferences and xdebug.ini files)
  • so the below guide is still usable:

https://dwaves.de/2020/05/05/how-to-setup-basic-lamp-stack-gnu-linux-debian-apache2-php7-3-mariadb-how-to-install-xdebug-step-debugging-php-requests-in-eclipse-pdt-on-debian-10-buster-lamp-web-development-stack/

    • ``` php -v; # is also a good way to test if xdebug is loaded when php is started vim /etc/php/8.1/apache2/php.ini; # no xdebug related settings are here vim /etc/php/8.1/cli/conf.d/20-xdebug.ini; # they are all here and read like:

    [XDebug]
    zend_extension=xdebug.so
    xdebug.mode=debug
    xdebug.start_with_request=trigger
    xdebug.start_with_request = 1
    xdebug.remote_autostart = on
    xdebug.log_level = 7
    xdebug.profiler_enable_trigger = 1
    xdebug.profiler_enable = 0
    xdebug.remote_enable = 1
    xdebug.profiler_output_dir = "/tmp"

    systemctl restart apache; # changes need to be made active by restarting webserver

    - when everything is installed go to eclipse -&gt; window -&gt; preferences 
    - [![](https://dwaves.de/wp-content/uploads/2022/03/eclipse-change-default-debugger-to-xdebug-and-xdebug-port-to-9003.png)](https://dwaves.de/wp-content/uploads/2022/03/eclipse-change-default-debugger-to-xdebug-and-xdebug-port-to-9003.png)
    - and also here: 
      - [![](https://dwaves.de/wp-content/uploads/2022/03/eclipse-change-default-debugger-to-xdebug-and-xdebug-port-to-9003_2.png)](https://dwaves.de/wp-content/uploads/2022/03/eclipse-change-default-debugger-to-xdebug-and-xdebug-port-to-9003_2.png)
    - if the developer r-click in the empty white space next to the code -&gt; 
    - [![](https://dwaves.de/wp-content/uploads/2022/03/eclipse-xdebug-php-debug-as-web-application.png)](https://dwaves.de/wp-content/uploads/2022/03/eclipse-xdebug-php-debug-as-web-application.png)
    - sees this message… 
    - - [![](https://dwaves.de/wp-content/uploads/2022/03/2022-03-YES-XDEBUG-IS-TALKING-TO-ECLIPSE-FINALLY-HURRAY.png)](https://dwaves.de/wp-content/uploads/2022/03/2022-03-YES-XDEBUG-IS-TALKING-TO-ECLIPSE-FINALLY-HURRAY.png)
      - releave… good god thanks they are talking to each other!
    

Tux_FlickFlack

what is btw excellent done is this “Open Source project funding and progress status page”:

so every user can see, what is the progress “where is it hanging” of the software project, is it a lack of funding?

suggestion: what still missing a “still todo” todo list, where user’s can post suggestions and vote on features 🙂

https://xdebug.org/log

https://xdebug.org/log

#linux #gnu #gnulinux #opensource #administration #sysops #php #apache2 #webserver #web #dev #html #javascript #apache #eclipse #xdebug #debugging #devphp #webdev #webdevelopment

Originally posted at: https://dwaves.de/2022/03/21/how-to-setup-basic-lamp-stack-gnu-linux-debian-11-apache2-php8-1-mariadb-how-to-install-xdebug-step-debugging-php-requests-in-eclipse-lamp-web-development-stack/

canoodle@nerdpol.ch

GNU Linux (Debian) 10 - how to access QNAP (TS-219P) NAS via NFSv4 - why QNAP has created a security mess - portmap query failed: RPC: Program/version mismatch / Protocol not supported

  1. create a new shared folder on the nas call it “data”
  2. enable NFSv4, disable NFSv3
  3. specify list of IPs that are allowed to access the NFSv4 share:
    • don’t forget to hit “Apply”
    • the idea is “anyway” to NAS<-directly-LAN-1000MBit->PC connect the NAS to the GNU Linux 10 based PC for maximum speed (PC will get fixed IP so no problem here)
<span style="color: #00ffff;">lsb_release -a</span>; # tested on
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

su - root; # become root
# create mount point
<span style="color: #00ffff;">mkdir /media/user/nfs/</span>

# the actual mounting process
<span style="color: #00ffff;">mount -v -t nfs4 192.168.0.230:/data/ /media/user/nfs/
</span>

possible errors: portmap query failed: RPC: Program/version mismatch / Protocol not supported

in this case what fixed those errors, was to allow access from specific list of IPs:

mount.nfs4: timeout set for Mon Mar 14 16:32:09 2022
mount.nfs4: trying text-based options 'vers=4.2,addr=192.168.0.230,clientaddr=192.168.0.222'
mount.nfs4: mount(2): Protocol not supported
mount.nfs4: trying text-based options 'vers=4.1,addr=192.168.0.230,clientaddr=192.168.0.222'
mount.nfs4: mount(2): No such file or directory
mount.nfs4: trying text-based options 'addr=192.168.0.230'
mount.nfs4: prog 100003, trying vers=3, prot=6
mount.nfs4: trying 192.168.0.230 prog 100003 vers 3 prot TCP port 2049
mount.nfs4: portmap query retrying: RPC: Program/version mismatch
mount.nfs4: prog 100003, trying vers=3, prot=17
mount.nfs4: trying 192.168.0.230 prog 100003 vers 3 prot UDP port 2049
mount.nfs4: portmap query failed: RPC: Program/version mismatch
mount.nfs4: Protocol not supported

the QNAP itsec mess: NEVER ALLOW PUBLIC ACCESS TO USER’S QNAP NAS VIA INTERNET!

while QNAP THINKS it does goad by loading MASSIVE amounts of pre installed stuff on their devices and promising “your personal cloud” QNAP actually creates A GIANT SECURITY PROBLEM because users WRONGLY trusting that QNAP NAS DEVICES ARE SUPER SECURE GNU LINUX (BUSY)BOXES and then DIRECTLY make the NAS accessible via internet from outside via various (more or less secure protocols, SMB/FTP/NFS ALL NOT SECURE PROTOCOLS!)

QNAP NAS and NFS protocol are intended to be used behind a firewall within a company net to store only backups, not unique data that might get lost BECAUSE OF A FIRMWARE BUG. (it has happened before)

less is sometimes more:

some performance & security optimizations that should be done:

  • go through ALL settings and disable ALL service that are not needed (Windows-Samba-Sharing, AFS Apple FileSharing, UPnP)
  • furthermore: ssh into the nas and modify crontab to not start those services:
  • ``` # every hour make sure mytranscode media bloatware is stopped! 0 * * * * /etc/init.d/QMediaService.sh stop

# every hour make sure cups service is stopped (not needed free ram for something else)
0 * * * * /etc/init.d/cupsd.sh stop
```
- run ps uax to checkout any unecessary service that might still be running & consuming resources

here is the output in this case:

<span style="color: #00ffff;">ps uax</span>
  PID  Uid     VmSize Stat Command
    1 admin       644 S   init       
    2 admin           SW  [kthreadd]
    3 admin           SW  [ksoftirqd/0]
    6 admin           SW< [khelper]
    7 admin           SW  [kworker/u:1]
  139 admin           SW  [sync_supers]
  141 admin           SW  [bdi-default]
  142 admin           SW< [kblockd]
  148 admin           SW< [ata_sff]
  158 admin           SW  [khubd]
  160 admin           SW  [kethubd]
  165 admin           SW< [md]
  258 admin           SW  [kswapd0]
  259 admin           SW  [fsnotify_mark]
  261 admin           SW< [crypto]
  358 admin           SW  [scsi_eh_0]
  361 admin           SW  [scsi_eh_1]
  365 admin           SW  [kworker/u:3]
  374 admin           SW  [scsi_eh_2]
  377 admin           SW  [scsi_eh_3]
  388 admin           SW< [orion_spi]
  396 admin           SW  [mtdblock0]
  400 admin           SW  [mtdblock1]
  404 admin           SW  [mtdblock2]
  408 admin           SW  [mtdblock3]
  412 admin           SW  [mtdblock4]
  416 admin           SW  [mtdblock5]
  441 admin           SW< [deferwq]
  475 admin           SW  [flush-1:0]
  578 admin      1276 S   /bin/sh /sbin/hotplug usb 
  583 admin      1532 S   /bin/sh /etc/hotplug/usb.agent 
  651 admin           SW  [md9_raid1]
  688 admin           SW  [md13_raid1]
  773 admin           SW  [kjournald]
 1144 admin           SW< [dm-block-clone]
 1164 admin           SW  [mv_crypto]
 1177 admin           SW< [cryptodev_queue]
 1209 admin           SW< [rpciod]
 1216 admin           SW< [nfsiod]
 1223 admin           SW< [cifsiod]
 1234 admin           SW  [fnotify]
 1244 admin           SW< [cfg80211]
 1265 admin       472 S < qWatchdogd: keeping alive every 1 seconds...
 1459 admin           SW  [flush-9:0]
 1736 admin           SW  [kjournald]
 1873 admin       980 S   /sbin/modagent 
 1918 admin           SW  [md2_raid1]
 2167 admin      1304 S   /bin/sh /etc/init.d/mtp_run.sh 
 2310 admin       632 S   /sbin/kerrd 
 2407 admin           SW  [md0_raid1]
 2409 admin           RWN [md0_resync]
 2760 admin           SW  [jbd2/md0-8]
 2761 admin           SW< [ext4-dio-unwrit]
 2821 admin      1688 S   /sbin/hotswap 
 2826 admin      1428 S   /sbin/qsmartd -d 
 3161 admin      5604 S < /usr/local/apache/bin/fcgi-pm      -k start -f /etc/apache-sys-proxy.conf 
 3168 admin      6588 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
 3169 admin      6588 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
 3170 admin      6588 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
 3171 admin      6588 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
 3172 admin      6588 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
 3188 admin      6512 S   /usr/local/apache/bin/fcgi-pm       -k start -f /etc/apache-sys-proxy-ssl.conf 
 3196 httpdusr   6904 S   /usr/local/apache/bin/apache -k start -c PidFile /var/lock/apache.pid -f /etc/config/apache/apache.conf 
 3197 httpdusr   6904 S   /usr/local/apache/bin/apache -k start -c PidFile /var/lock/apache.pid -f /etc/config/apache/apache.conf 
 3198 httpdusr   6928 S   /usr/local/apache/bin/apache -k start -c PidFile /var/lock/apache.pid -f /etc/config/apache/apache.conf 
 3287 admin      3132 S   sshd: admin@pts/1                                        
 3315 admin      1484 S   -sh 
 3324 admin      1476 S   bash 
 3358 admin      9544 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
 3398 admin      9472 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
 3404 admin      9424 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
 3420 admin      9140 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
 3421 admin      9164 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
 4017 admin      6588 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
# yes it runs a full blown mysql database server
<span style="color: #ff6600;"> 4244 admin     45236 S   /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my-mariadb.cnf --basedir=/usr/local/mariadb --datadir=/share/MD0_DATA/.system/data --plugin-dir=/usr/local/mariadb/lib/</span>
 4365 admin      2388 S   /sbin/qpkgd -d0 
 4420 guest      1084 S   /usr/sbin/dbus-daemon --system 
 5328 admin      2380 S   /usr/local/sbin/_thttpd_ -p 58080 -nor -nos -u admin -d /home/httpd -c **.* -h 127.0.0.1 -i /var/lock/._thttpd_.pid 
 5609 admin     22128 S < /usr/local/apache/bin/apache_proxy -k start -f /etc/apache-sys-proxy.conf 
 5718 httpdusr   1148 S   /sbin/lpb_scheduler -d 
 5760 admin      1560 S   /sbin/genthd 
 5948 admin           SW< [krfcommd]
 5973 admin      1480 S   /usr/sbin/bluetoothd 
 5982 admin       428 S   /usr/sbin/agent --adapter hci0 
 6044 admin      1916 S   /usr/local/sbin/remote_folder_daemon --reset 
 6202 admin       912 S   /usr/sbin/ntpdated 
 6216 admin      1600 S   /usr/sbin/upsutil 
 6478 admin      2756 S   /usr/sbin/sshd -f /etc/config/ssh/sshd_config -p 1234 
 6744 admin     23660 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
 7211 admin      1348 S   /usr/bin/lunportman 
 7264 admin      2080 S   /sbin/bcclient 
 7347 admin      1944 S   /sbin/picd 
 7350 admin      1724 S   /sbin/gpiod 
 7355 admin      1868 S   /sbin/hwmond 
 7432 admin       816 S N /usr/bin/rsyncd --daemon --sever-mode=1 --qnap-bwlimit 
 7728 admin      1880 S   /sbin/hd_util 
 7730 admin       552 S   /sbin/gen_bandwidth -r -i 5 
 7863 admin      1128 S   /bin/sh /etc/init.d/klogd.sh start 
 7872 admin      1748 S   qNoticeEngined: Write notice is enabled...
 7885 admin      1304 S   /sbin/qsyslogd 
 7893 admin      1392 S   /sbin/qShield 
 7907 admin      1956 S   qLogEngined: Write log is disabled...
 7964 admin       460 S   /bin/dd if=/proc/kmsg of=/mnt/HDA_ROOT/.logs/kmsg bs=1 count=1024000 
 8131 admin           SW< [iscsi_eh]
 8179 admin           SW  [qnap_et]
 8250 admin       448 S   /sbin/iscsid --config=/etc/config/iscsi/sbin/iscsid.conf --initiatorname=/etc/iscsi/initiatorname.iscsi 
 8251 admin      2248 S < /sbin/iscsid --config=/etc/config/iscsi/sbin/iscsid.conf --initiatorname=/etc/iscsi/initiatorname.iscsi 
 8296 admin      1512 S   /sbin/vdd_control -d 
 8943 admin       820 S   /usr/bin/portmap 
 9189 admin       232 S   /usr/sbin/rpc.rquotad -p 30002 
 9465 admin      2476 S   /usr/sbin/rpc.mountd -p 30000 -F 
 9628 admin           SW  [lockd]
 9629 admin           SW< [nfsd4]
 9631 admin           SW< [nfsd4_callbacks]
 9633 admin           SW  [nfsd]
 9634 admin           SW  [nfsd]
 9635 admin           SW  [nfsd]
 9636 admin           SW  [nfsd]
 9637 admin           SW  [nfsd]
 9638 admin           SW  [nfsd]
 9639 admin           SW  [nfsd]
 9640 admin           SW  [nfsd]
 9775 admin      1440 S   /usr/sbin/rpc.idmapd 
 9784 admin      1940 S   /usr/sbin/rpc.statd -p 30001 
 9826 admin      1280 S   /sbin/daemon_mgr 
 9886 admin      2012 S   /usr/local/bin/qb_daemon -d 7 
 9906 admin      2048 S   /usr/bin/qsyncman 
10321 admin      2032 S   /sbin/upnpcd -i 300 
11289 admin      3860 S   /usr/local/apache/bin/apache-dav -k start -f /etc/apache-dav-sys.conf 
11296 admin      2024 S   /usr/local/apache/bin/apache-dav -k start -f /etc/apache-dav-sys.conf 
11516 admin       592 S   /sbin/getty 115200 ttyS0 
11731 admin     23484 S   /usr/local/apache/bin/apache -k start -c PidFile /var/lock/apache.pid -f /etc/config/apache/apache.conf 
12927 admin           SW  [kworker/0:1]
14999 admin      3136 S   sshd: admin@pts/2                                        
15024 admin      1488 S   -sh 
15291 admin      1568 S   bash 
15461 admin      8360 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
16254 admin           SW  [kworker/0:2]
16963 admin           SW  [flush-9:9]
18716 admin       748 S   /usr/sbin/crond -l 9 -c /tmp/cron/crontabs 
18893 admin      8932 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
19588 admin           SW  [kworker/0:0]
20944 admin      6764 S   /usr/local/apache/bin/apache_proxys -k start -f /etc/apache-sys-proxy-ssl.conf 
23461 admin           SW  [kworker/0:3]
23685 admin       400 S   /bin/sleep 1 
23686 admin       784 R   ps uax 
23687 admin      1848 R   chartReq.cgi 
23688 admin      1076 S   /usr/local/sbin/_thttpd_ -p 58080 -nor -nos -u admin -d /home/httpd -c **.* -h 127.0.0.1 -i /var/lock/._thttpd_.pid 
30445 admin           SW  [flush-9:13]

related articles:

https://dwaves.de/2021/10/11/gnu-linux-debian-how-to-setup-nfs-server-and-mount-nfs-share/

manpages:

mount.nfs4.man.txt

#linux #gnu #gnulinux #opensource #administration #sysops #qnap #nas #nfs #storage

Originally posted at: https://dwaves.de/2022/03/14/gnu-linux-debian-10-how-to-access-qnap-ts-219p-nas-via-nfsv4-why-qnap-has-created-a-security-mess-portmap-query-failed-rpc-program-version-mismatch-protocol-not-supported/

canoodle@nerdpol.ch

GNU Linux Debian - very fast and easy semi-automatic online install Debian 11 (non-free)

many users have/had macbooks.

what was/still is great: OSX can be reinstalled over internet! (no more searching for licence keys or setup sticks/DVDs/CDs/)

given the fact – that once installed – GNU Linux Debian can boot (almost) anywhere, the fastest and easiest way to “install” it is to simply 1:1 copy it on whatever the user wants to boot from (harddisk or usb stick (some sticks can not be made bootable, try at least 3 different vendors)).

So… this install script 1:1 copy installs Debian 11 (non-free) on any laptop/desktop/server (depending on internet speed) very fast & easy.

The process can be automated (on similar hardware or on hardware where /dev/sda is always the device the user wants to 1:1 overwrite).

This script install process is almost like OSX 🙂 but “semi-automatic” to double ask, not to overwrite the wrong (USB attached?) disk.

  • it comes with a full MATE Desktop and everything to get working (LibreOffice and Firefox and Thunderbird)
  • it has the “cosmos” slideshow (love it!) background enabled per default
  • the terminal comes with green on black for better readability
  • it does not have a swap partition enabled, so the user can easily with gparted 1) extend the harddisk to it’s full capacity 2) create a swap partition
  • English, Spanish, Chinese and German keyboard layout are active, should be possible to switch between them in the top right corner

todo: what is still missing

  • what is still missing is:
    • automatically calc (based on RAM size, would do as much swap as RAM) how much swap should be created
    • extend the /root partition to full harddisk capacity minus the swap space
    • create the swap partition and edit config files /etc/fstab and /etc/initramfs-tools/conf.d/resume for proper (as intended) functionality of the system
  • apply this
  • display a dancing penguin during first successfull boot and encourage user to do at least 5min of dancing to this funky music 🙂

WARNING!

  • make sure to disconnect all devices (external harddisks, usb sticks, sdcards)
    • less devices = less trouble and less accidentally overwriting a external harddisk or usb stick
  • if the target device /dev/sdX contains important data, backup it up !first! (all data will be overwritten)

WHY NON FREE?

it’s based on the non-free version, because it is intended to allow new users that never tested GNU Linux Debian (with a MATE Desktop) a “it just works” turnkey experience.

Is the Free version better?

If the user has concerns about surveillance/spying and needs maximum privacy than it is probably better to start with the defautl GNU Linux Debian free version and usually all network-cards/NICs work out of the box (free drivers available 🙂 (but maybe not the wifi cards)

new users: workaround for this pitfall:

https://dwaves.de/2022/01/21/gnu-linux-debian-11-2-network-stops-working-networking-stops-during-setup-bad-archive-mirror-how-every-os-setup-should-be/

Problems might arise with the free version and wifi: (notebooks)

because then the user will probably have to install the appropriate closed source (#evil!) drivers from the the non-free repository with all the spying backdoors that a intel wifi driver might have (after all a network card, is like a small computer, inside a computer, ideal! but then if the BIOS is not LibreBooted… the Intel ME can not be disabled… (some OS allow to permanently disable Intel ME!!!).

… the fight for more privacy and security – seems never ending and goes on.

requirements:

  • the laptop/desktop/server root harddisk/the target harddisk (/dev/sdX) should have at least 100GBytes of harddisk space
  • ideally boot from GNU Linux live usb stick with at least 3GBytes of free space
  • or alternatively: boot from read-only live DVD or image and when booted up, connect a ext4 or ext3 or fat32 or ntfs formatted USB stick or drive with at least 3GBytes of free space

    • there are many other desktop live flavours available (great! 🙂 : https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/
    • when booted from live, cd into the external usb stick-drive
    • create the below script (copy content into a text file, name it name-of-script.sh)
    • <span style="color: #00ffff;">chmod +x name-of-script.sh</span>; # mark it runnable - <span style="color: #00ffff;">su - root</span>; # become root
    • <span style="color: #00ffff;">/name-of-script.sh /dev/sdX</span>; # run it, passing the device Debian 11 should be installed on - will download ~2.5Gbytes image.gz to current directory (the usb-stick-drive and store it there permanently for later re-use) - curl can resume interrupted downloads

usage:

# sdX is the device the user wants to install Debian 11 on
<span style="color: #00ffff;">/scripts/install_debian_from_image.sh /dev/sdX
</span>

process complete? reboot & “it just works”?

congratz! do 1min of wiggle dance!

[video width=”306″ height=”194″ mp4=”https://dwaves.de/wp-content/uploads/2022/01/happyness-drum-and-bass-dance-of-success.mp4″\]\[/video\]

post processing:

want to use the complete harddisk not just the 100GBytes? two possibilities:

what the script will do:

  • download a pre-installed Debian 11 image.gz and it’s sha512check-sum
  • sha512 check the image (check the image is unaltered and intact)
  • on the fly unpack and 1:1 write the image to /dev/sdX while showing a progress bar
<span style="color: #00ffff;">vim /scripts/install_debian_from_image.sh</span>

<span style="color: #ff6600;">#!/bin/bash

DEBIAN_IMAGE=debian11_amd64_non_free_drivers_mate_libre_firefox.img.gz
DOWNLOAD=https://dwaves.de/downloads/$DEBIAN_IMAGE

# define colors
RED='\033[0;31m'
WHITE='\033[0;37m'
YELLOW='\033[0;33m'
COLOR_OFF='\033[0m' # reset color to default

echo -e "${WHITE}=== download and 1:1 copy debian.img.gz to $1 ===${COLOR_OFF}\n"

if [ -z "$1" ]
  then
    echo "please pass device like this: /dev/sdx
          TARGET THE WHOLE DEVICE (sdb)
          NOT A PARTITION! (sdb1)"
  else


echo -e "${RED}this script is meant to be run from an live-cd or usb stick (so $1 should be an OFFLINE filesystem (not currently running)"
    echo "please read carefully, a mistake could overwrite critical data!!!"
    echo -e "physically disconnect all critical data-drives before procedure!!!${COLOR_OFF}\n"
    echo ""

    echo "========== do you want to copy the $DEBIAN_IMAGE image on device $1 ?"

    echo -e "${YELLOW}~3GBytes of disk space is needed in the current directory${COLOR_OFF}\n"
    pwd
    echo "=========== harddisk overview";
    echo "==== where is what";
    lsblk -o 'NAME,MAJ:MIN,RM,SIZE,RO,FSTYPE,MOUNTPOINT,UUID'
    smartctl -i $1;
    echo ""


echo -e "${YELLOW}"
read -p "CONTINUE? (y/n)" choice
case "$choice" in 
  y|Y ) echo "yes";;
  n|N ) echo "no";;
  * ) echo "invalid";;
esac

    echo "installing required software for fast multi threaded decompression of image (pigz)"
    echo "and showing progress during dd (pv)"

echo -e "${COLOR_OFF}\n"

    apt update
    apt install pv pigz curl

echo -e "${YELLOW}starting download of $DOWNLOAD... please stand by${COLOR_OFF}\n"
    curl -L -O -C - $DOWNLOAD;

echo -e "${YELLOW}starting download of checksum $DOWNLOAD.sha512sum.txt ... please stand by${COLOR_OFF}\n"

    curl -L -O -C - $DOWNLOAD.sha512sum.txt;

    echo "verify sha512sum..."

cat "./$DEBIAN_IMAGE.sha512sum.txt" | sha512sum -c

if [ $? != 0 ]; then
echo -e "${RED}Checksum failed. aborting script. maybe $DEBIAN_IMAGE corrupted during download. please try to re-run the script." >&2
echo -e "${COLOR_OFF}\n"
  exit 1
fi

echo -e "${YELLOW}starting write process...${COLOR_OFF}\n"
    umount $1*;

    dd if=./$DEBIAN_IMAGE of=$1 status=progress; sync;

    pigz -dc $DEBIAN_IMAGE | pv | dd bs=1M of=$1; sync;
    ## single core
    ### gunzip -c /path/to/image.img.gz | pv | dd of=$1; # write image to usb stick

echo -e "${YELLOW}the image $DEBIAN_IMAGE was written to stick $1. process finished. try booting it now :)${COLOR_OFF}\n"
fi

</span>

#linux #gnu #gnulinux #opensource #administration #sysops #gnu-linux #debian #osx #setup #installation #breeze #easy #fast #debian11 #bullseye

Originally posted at: https://dwaves.de/2022/01/28/gnu-linux-debian-very-fast-and-easy-semi-automatic-online-install-debian-11-non-free/