OpenMP on Windows using GCC

1. Install MinGW-w64

  • run the installer mingw-w64-install.exe
  • click Next, Architecture: x86_64, Next, Next…, Finish

  • 2. Add GCC to Path

    • click Win key, type “env”, click Edit environment variables…
    • click Path, Edit…, New, Browse… to C:\Program Files\mingw-w64\x86_64-...\mingw64\bin, click OK twice
    • test by calling it from Command Prompt, this output is expected

    • 3. Install Geany code editor

      • create a new .c file
      • go to menu Build > Set Build Commands, add -fopenmp flag
      • click Build (F9) and Execute (F5), to compile and run the program

FileBrowser Setup

A quick setup for x86 assembly editor and compilation server using filebrowser.org. It is a neat program to create your own mini cloud file server, see its features here.

# install
curl -fsSL https://filebrowser.org/get.sh | bash

# init config
filebrowser
^C

# set config
filebrowser config set --address $(hostname -I)

# ERROR: "Command not allowed", set it via GUI
#filebrowser config set --commands "yasm ld gcc gdb ./a.out" /
#                       --shell "bash -c" /
#                       --signup #--createuserdir

# run in background
nohup filebrowser &

# continue setup via GUI below

Login as admin:admin, and then go to Settings — Global Settings:

  • Allow users to signup
  • Auto create user home dir while adding new user
  • Execute on shell: bash -c
  • Commands: yasm ld gcc gdb objdump ./a.out

Nginx Proxy Configuration for WebSocket

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close; 
    }

    server {
        location / { 
            ...
            proxy_set_header Upgrade $http_upgrade; 
            proxy_set_header Connection $connection_upgrade; 
        }
    }

Raspbian Installation

Download Raspbian

$ wget --content-disposition https://downloads.raspberrypi.org/raspbian_latest
$ unzip 2016-05-27-raspbian-jessie.zip

Insert the SD card

$ dmesg | tail
...
[...] mmc0: new ultra high speed SDR50 SDHC card at address aaaa
[...] mmcblk0: mmc0:aaaa SL08G 7.40 GiB 
[...]  mmcblk0: p1 p2 < p5 p6 > p3

Take a note the SD card device name, here the name is /dev/mcblk0.

Write the image to SD card

$ su
# dd bs=4M if=2016-05-27-raspbian-jessie.img of=/dev/mmcblk0

Install Xubuntu 16.04

Installation

  • Boot from Xubuntu CD or flash drive, press F1, F12 (Lenovo), or Esc (HP) to go to boot menu.
  • Disconnect from the internet to speed up the installation process.
  • Click Install Xubuntu.
  • Uncheck all option and Click Continue.
  • Choose Erase disk and Install Ubuntu, Click Install Now, and then Continue.
  • Choose Jakarta and then Continue.
  • Click Continue.
  • Fill the user information:
    • name: Admin Lab
    • hostname: lab1-01
    • username: adminlab
    • password: *****
    • confirm password: *****
    • and then click Continue.
  • Click Restart Now.

Network

Now, connect the network cable and add a static IP address configuration for ethernet interface enp1s0 (do not use NetworkManager, else a user can override the setting).

$ sudo editor /etc/network/interfaces
auto enp1s0
iface enp1s0 inet static
  address 172.18.78.101
  netmask 255.255.255.0
  gateway 172.18.78.1
  dns-nameservers 172.17.5.14 172.17.0.2
$ sudo service networking restart

Repository

Edit and replace the sources.list with local Ubuntu repository.

$ sudo editor /etc/apt/sources.list
deb http://sg.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse 
deb http://sg.archive.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse 
deb http://sg.archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse

Update the list and upgrade to the latest application package.

$ sudo apt update
$ sudo apt upgrade

Install SSH.

$ sudo apt install ssh

Format USB Flash Drive

Attach the flash drive and check the name assigned to this device immediately using dmesg. In this example, the device name was /dev/sdb1.

$ dmesg | tail
...
[...] sd 12:0:0:0: [sdb] Write cache: disabled, ...
[...]  sdb: sdb1
[...] sd 12:0:0:0: [sdb] Attached SCSI removable disk

Format it to FAT or NTFS filesystem and give a label (optional).

# mkfs.fat -n 'Label' -I /dev/sdb1
# mkfs.ntfs --fast --label 'Label' /dev/sdb1