Merge pull request #1 from likeablob/develop

Fix bugs
This commit is contained in:
likeablob 2019-10-11 23:09:40 +09:00 committed by GitHub
commit f32a322d41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 53 additions and 17 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
.wav
*.wav

View File

@ -16,19 +16,25 @@
- Install Armbian Bionic. https://www.armbian.com/orange-pi-zero-plus-2-h3/
- Then SSH into the device.
```bash
$ sudo apt install -y git xtightvncserver
$ sudo apt install -y git tightvncserver
# Install Node.js
$ git clone https://github.com/tj/n /tmp/n && cd /tmp/n && sudo make install
$ sudo n v10
# Install https://github.com/xpertsavenue/WiringOP-Zero
$ cd ~/
$ git clone https://github.com/xpertsavenue/WiringOP-Zero
## Please refer to https://github.com/xpertsavenue/WiringOP-Zero
# Enable spi interface
$ sudo vi /boot/armbianEnv.txt # or use armbian-config
! overlays=spi-spidev analog-codec usbhost2 usbhost3
+ param_spidev_spi_bus=1
# Setup vncserver
$ mkdir .vnc
$ vncpasswd .vnc/passwd
$ mkdir ~/.vnc
$ vncpasswd ~/.vnc/passwd
# Install the dependencies & config files
$ git clone https://github.com/likeablob/macmini ~/macmini
@ -36,10 +42,12 @@ $ cd ~/macmini
$ sudo ./install.sh
# copy ypur assests
$ cp /path/to/vmac.rom ~/macmini/minivmac/vmac.rom # Mini vMac ROM file
$ cp /path/to/vmac.rom ~/macmini/minivmac/vMac.ROM # Mini vMac ROM file
$ cp /path/to/vmac.dsk ~/macmini/minivmac/system.dsk # Mini vMac disk file
$ cp /path/to/.basilisk_ii_prefs ~/.basilisk_ii_prefs # Basilisk II config file
$ cp /path/to/macboot.wav ~/macmini/macboot.wav # Boot sound (optional)
$ sudo reboot now
```
- [Tips]: Here is my working [.basilisk_ii_prefs](basilisk_ii_prefs.md).
@ -69,9 +77,9 @@ $ cp /path/to/macboot.wav ~/macmini/macboot.wav # Boot sound (optional)
5. `~/macmini/switcher/gpio-reader.js` watchs the push SW at GPIO7(PA06) and send a request to `localhost:5501/`.
### How does the low-res LCD(320x240) handle 512x384 resolution?
Internally `xthighvncserver` and `ssvncviewer` are used to scale the display.
Internally `tightvncserver` and `ssvncviewer` are used to scale the display.
- e.g. [`1_large_minimac.sh`]((./switcher/sh.d/1_large_minimac.sh)) launches:
- `xthighvncserver` to create a virtual display (512x384) at `DISPLAY=:1` (`:5901`)
- `tightvncserver` to create a virtual display (512x384) at `DISPLAY=:1` (`:5901`)
- `minivmac` in `DISPLAY:1`
- `ssvncviewer -scale 0.625` in `DISPLAY:0` (By the `-scale` option, low-res LED get upscaled)
## Gallery
@ -95,5 +103,5 @@ Internally `xthighvncserver` and `ssvncviewer` are used to scale the display.
## Acknowledgment
- Mini vMac https://www.gryphel.com/c/minivmac/
- Basilisk II https://basilisk.cebix.net/
- Kudos to all the devs!s
- Kudos to all the devs!

3
config/.xsession Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
. ~/.profile
. ~/.xinitrc

View File

@ -1,10 +1,10 @@
#! /bin/bash
[ $(id -u) -gt 0 ] && echo Please run as root! && exit 1
[ $(id -u) -gt 0 ] && echo Please run with sudo && exit 1
set +x
set -x
apt install -y -q \
apt update && apt install -y -q \
bluez \
tightvncserver \
ssvnc \
@ -14,19 +14,30 @@ apt install -y -q \
matchbox-window-manager \
nodm \
xserver-xorg-input-libinput \
xserver-xorg-video-fbdev \
x11-apps \
xinit \
xfonts-base \
xloadimage \
tmux \
sl \
pulseaudio \
pulseaudio-esound-compat \
pulseaudio-utils \
pavucontrol
fc-cache -fv # just in case
cp -a config/.xinitrc ~/.xinitrc
cp -a config/.xsession ~/.xsession
cp -a config/xstartup ~/.vnc/
cp config/99-fbdev.conf /etc/X11/xorg.conf.d/
cp config/fbtft.conf /etc/modprobe.d/
echo fbtft_device > /etc/modules-load.d/fbtft.conf
cp config/asound.conf /etc/
cp config/rc.local /etc/
sed -i.orig -e "s/NODM_USER=root/NODM_USER=${USER}/" /etc/default/nodm
cd switcher && npm install
sudo -u $SUDO_USER sh -c "cd switcher && npm i --production"
echo Done!

View File

@ -1,5 +1,5 @@
{
"name": "switcher",
"name": "mm-switcher",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
@ -895,6 +895,11 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
"node-fetch": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@ -935,6 +940,11 @@
"wordwrap": "~1.0.0"
}
},
"orange-pi-gpio": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/orange-pi-gpio/-/orange-pi-gpio-1.0.2.tgz",
"integrity": "sha1-NL9Yr1K36Nujz17MVbJS3MYnMow="
},
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",

View File

@ -12,7 +12,9 @@
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.3"
"express": "^4.16.3",
"node-fetch": "^2.6.0",
"orange-pi-gpio": "^1.0.2"
},
"devDependencies": {
"eslint": "^6.5.1",
@ -20,4 +22,4 @@
"eslint-plugin-prettier": "^3.1.1",
"prettier": "^1.18.2"
}
}
}

View File

@ -5,4 +5,5 @@ vncserver -geometry 512x384
ssvncviewer -scale 0.625 :1 -fullscreen -passwd ~/.vnc/passwd &
DISPLAY=:1
cd ~/macmini/minivmac
./minivmac.512 vmac.rom system.dsk
DISKS=$(ls *dsk | grep -v system.dsk | xargs)
./minivmac.512 system.dsk ${DISKS}

View File

@ -5,4 +5,5 @@ vncserver -geometry 320x240
ssvncviewer -scale 1 :1 -fullscreen -passwd ~/.vnc/passwd &
DISPLAY=:1
cd ~/macmini/minivmac
./minivmac.320 vmac.rom system.dsk
DISKS=$(ls *dsk | grep -v system.dsk | xargs)
./minivmac.320 system.dsk ${DISKS}