<![CDATA[Senpai Club]]>https://senpai.club/https://senpai.club/favicon.pngSenpai Clubhttps://senpai.club/Ghost 3.38Sun, 22 Nov 2020 02:09:28 GMT60<![CDATA[Cyberpunk 2077]]>https://senpai.club/cyberpunk/5fa9b1d7b14ea1000149fa05Tue, 07 Jul 2020 19:43:22 GMT

All the things we know so far

Cyberpunk 2077

If you haven't been living under a rock you've probably heard about Cyberpunk 2077 these days. A game developed by the same company that blessed us with The Witcher series, CD Projekt Red.

In this blog post we're going summarize what we know so far about Cyberpunk 2077. (Status quo 2020-07-07, yes pun intended)


Cyberpunk 2077

First and foremost, the scheduled release date of Cyberpunk for PC and Console is on the 19th November this year. This means exactly 135 days from today.
However people who are looking forward to play it on Google Stadia will have to hold back until the end of 2020 and it gets even worse. Next-Gen consoles players will have to wait until sometime in 2021.


Cyberpunk 2077

For all the PC players out there, official system requirements haven't been announced yet, but it's safe to assume that you'll need an above average PC to run the game at 1080p and an absolute gaming monster for 4K with 60 frames.
Furthermore, it has been confirmed that Next-Gen consoles will have a graphically upgraded version up for purchase to take use of the additional power.


Cyberpunk 2077

Now let's take a look at the game itself. Cyberpunk 2077 is intended to be a first-person, singleplayer, role-playing experience with a possible multiplayer mode coming with updates later on. You're going to play as V , the highly customisable main character.


There are three classes to choose from:
NetRunner, who is focused in hacking
Techie, who is specialized in machinery
Solo, who is trained in combating

As your character V you are going to enjoy the open world of Night City and its surroundings. This metropolis is built around six regions and the Badlands, the outside area of the city.

It is also important to note that the story leads to different endings, which means that you ultimately choose how good of a person you want V to be and more importantly what will happen to Keanu Reeves. Yes, motherf***ing Keanu Reeves is also a character ingame!!!

Also a small little gimmick, CD Projekt Red decided it would be fun to include some minigames.


Cyberpunk 2077

CYBERPUNK: EDGERUNNERS ever heard of that?
Imagine you just finished the game, hanging around at home and don't know what to do. Maybe clean the house, or go grocery shopping or browse furiously through Netflix for some animes, but then suddenly you see the Cyberpunk logo on Netflix and you think...wait what?

You can't believe your eyes, but yes there is definitely a Cyberpunk logo, you click on it and an anime opening starts.

A dream coming true, a 10-episode anime series set in the world of Cyberpunk 2077. The series is called Cyberpunk: Edgerunners and is coming 2022 on Netflix, to be more specific a Netflix Original collaboration with CD Projekt Red and the Japanese animation company Studio Trigger (famous for Kill la Kill).


Now finally to summarize everything in a short paragraph in the end, Cyberpunk 2077 is going to launch 19th of November 2020 and it features amazing graphics, a great storyline, unique game mechanics and Keanu Reeves. If that's not enough, there will be an anime series in 2022 on Netflix.


Sources:

All information was provided by the official website https://www.cyberpunk.net/ as of 2020-07-07 at 09:21 P.M. CET.

]]>
<![CDATA[Automated updated COVID-19 Live Feed from WHO]]>This is a corona live feed that is updated hourly with a web crawler from the official WHO website with the latest news and information.

Latest Update

WHO publishes interactive timeline of its response30 July 2020To mark six months since WHO declared a public health emergency of international concern, the

]]>
https://senpai.club/corona-live-feed/5fa9b1d7b14ea1000149fa03Fri, 20 Mar 2020 01:58:55 GMT

This is a corona live feed that is updated hourly with a web crawler from the official WHO website with the latest news and information.

Latest Update

WHO publishes interactive timeline of its response30 July 2020To mark six months since WHO declared a public health emergency of international concern, the highest level of alarm under international law, WHO published an interactive timeline showcasing how the organization has taken action on information, science, leadership, advice, response and resourcing.  Key materials:Interactive timelineWHO Director-General's opening remarks at the media briefing on COVID-19 - 27 July 2020

Current Spread Info

Automated updated COVID-19 Live Feed from WHO

Current FAQ

What is COVID-19?

COVID-19 is the disease caused by a new coronavirus called SARS-CoV-2.  WHO first learned of this new virus on 31 December 2019, following a report of a cluster of cases of ‘viral pneumonia’ in Wuhan, People’s Republic of China.

What are the symptoms of COVID-19?

The most common symptoms of COVID-19 are

  • Fever
  • Dry cough
  • Fatigue

Other symptoms that are less common and may affect some patients include:

  • Loss of taste or smell,
  • Nasal congestion,
  • Conjunctivitis (also known as red eyes)
  • Sore throat,
  • Headache,
  • Muscle or joint pain,
  • Different types of skin rash,
  • Nausea or vomiting,
  • Diarrhea,
  • Chills or dizziness.

Symptoms of severe COVID‐19 disease include:

  • Shortness of breath,
  • Loss of appetite,
  • Confusion,
  • Persistent pain or pressure in the chest,
  • High temperature (above 38 °C).

Other less common symptoms are:

  • Irritability,
  • Confusion,
  • Reduced consciousness (sometimes associated with seizures),
  • Anxiety,
  • Depression,
  • Sleep disorders,
  • More severe and rare neurological complications such as strokes, brain inflammation, delirium and nerve damage.

People of all ages who experience fever and/or cough associated with difficulty breathing or shortness of breath, chest pain or pressure, or loss of speech or movement should seek medical care immediately. If possible, call your health care provider,hotline or health facility first, so you can be directed to the right clinic.

What happens to people who get COVID-19?

Among those who develop symptoms, most (about 80%) recover from the disease without needing hospital treatment. About 15% become seriously ill and require oxygen and 5% become critically ill and need intensive care.

Complications leading to death may include respiratory failure, acute respiratory distress syndrome (ARDS), sepsis and septic shock, thromboembolism, and/or multiorgan failure, including injury of the heart, liver or kidneys.

In rare situations, children can develop a severe inflammatory syndrome a few weeks after infection.

Who is most at risk of severe illness from COVID-19?

People aged 60 years and over, and those with underlying medical problems like high blood pressure, heart and lung problems, diabetes, obesity or cancer, are at higher risk of developing serious illness.

However, anyone can get sick with COVID-19 and become seriously ill or die at any age.

Are there long-term effects of COVID-19?

Some people who have had COVID-19, whether they have needed hospitalization or not, continue to experience symptoms, including fatigue, respiratory and neurological symptoms.

WHO is working with our Global Technical Network for Clinical Management of COVID-19, researchers and patient groups around the world to design and carry out studies of patients beyond the initial acute course of illness to understand the proportion of patients who have long term effects, how long they persist, and why they occur.  These studies will be used to develop further guidance for patient care.

How can we protect others and ourselves if we don't know who is infected?

Stay safe by taking some simple precautions, such as physical distancing, wearing a mask, especially when distancing cannot be maintained, keeping rooms well ventilated, avoiding crowds and close contact, regularly cleaning your hands, and coughing into a bent elbow or tissue. Check local advice where you live and work. Do it all!

Read our public advice page for more information.


When should I get a test for COVID-19?

Anyone with symptoms should be tested, wherever possible. People who do not have symptoms but have had close contact with someone who is, or may be, infected may also consider testing – contact your local health guidelines and follow their guidance.

While a person is waiting for test results, they should remain isolated from others. Where testing capacity is limited, tests should first be done for those at higher risk of infection, such as health workers, and those at higher risk of severe illness such as older people, especially those living in seniors’ residences or long-term care facilities.

What test should I get to see if I have COVID-19?

In most situations, a molecular test is used to detect SARS-CoV-2 and confirm infection. Polymerase chain reaction (PCR) is the most commonly used molecular test. Samples are collected from the nose and/or throat with a swab. Molecular tests detect virus in the sample by amplifying viral genetic material to detectable levels. For this reason, a molecular test is used to confirm an active infection, usually within a few days of exposure and around the time that symptoms may begin.

What about rapid tests?

Rapid antigen tests (sometimes known as a rapid diagnostic test – RDT) detect viral proteins (known as antigens). Samples are collected from the nose and/or throat with a swab. These tests are cheaper than PCR and will offer results more quickly, although they are generally less accurate. These tests perform best when there is more virus circulating in the community and when sampled from an individual during the time they are most infectious.

I want to find out if I had COVID-19 in the past, what test could I take?

Antibody tests can tell us whether someone has had an infection in the past, even if they have not had symptoms. Also known as serological tests and usually done on a blood sample, these tests detect antibodies produced in response to an infection. In most people, antibodies start to develop after days to weeks and can indicate if a person has had past infection. Antibody tests cannot be used to diagnose COVID-19 in the early stages of infection or disease but can indicate whether or not someone has had the disease in the past.

What is the difference between isolation and quarantine?

Both isolation and quarantine are methods of preventing the spread of COVID-19.

Quarantine is used for anyone who is a contact of someone infected with the SARS-CoV-2 virus, which causes COVID-19, whether the infected person has symptoms or not. Quarantine means that you remain separated from others because you have been exposed to the virus and you may be infected and can take place in a designated facility or at home. For COVID-19, this means staying in the facility or at home for 14 days.

Isolation is used for people with COVID-19 symptoms or who have tested positive for the virus. Being in isolation means being separated from other people, ideally in a medically facility where you can receive clinical care.  If isolation in a medical facility is not possible and you are not in a high risk group of developing severe disease, isolation can take place at home. If you have symptoms, you should remain in isolation for at least 10 days plus an additional 3 days without symptoms. If you are infected and do not develop symptoms, you should remain in isolation for 10 days from the time you test positive.

Automated updated COVID-19 Live Feed from WHO

What should I do if I have been exposed to someone who has COVID-19?

If you have been exposed to someone with COVID-19, you may become infected, even if you feel well.

After exposure to someone who has COVID-19, do the following:

  • Call your health care provider or COVID-19 hotline to find out where and when to get a test.
  • Cooperate with contact-tracing procedures to stop the spread of the virus.
  • If testing is not available, stay home and away from others for 14 days.
  • While you are in quarantine, do not go to work, to school or to public places. Ask someone to bring you supplies.
  • Keep at least a 1-metre distance from others, even from your family members.
  • Wear a medical mask to protect others, including if/when you need to seek medical care.
  • Clean your hands frequently.
  • Stay in a separate room from other family members, and if not possible, wear a medical mask.
  • Keep the room well-ventilated.
  • If you share a room, place beds at least 1 metre apart.
  • Monitor yourself for any symptoms for 14 days.
  • Stay positive by keeping in touch with loved ones by phone or online, and by exercising at home.

If you live in an area with malaria or dengue fever, seek medical help if you have a fever. While travelling to and from the health facility and during medical care, wear a mask, keep at least a 1-metre distance from other people and avoid touching surfaces with your hands. This applies to adults and children. Read our malaria and COVID-19 Q&A for more information.

How long does it take to develop symptoms?

The time from exposure to COVID-19 to the moment when symptoms begin is, on average, 5-6 days and can range from 1-14 days. This is why people who have been exposed to the virus are advised to remain at home and stay away from others, for 14 days, in order to prevent the spread of the virus, especially where testing is not easily available.

Is there a vaccine for COVID-19?

Not yet. Many potential vaccines for COVID-19 are being studied, and several large clinical trials may report results later this year. If a vaccine isproven safe and effective, it must be approved by national regulators, manufactured, and distributed. WHO is working with partners around the world to help coordinate key steps in this process. WHO is working through the ACT-Accelerator to facilitate equitable access to a safe and effective vaccine for the billions of people who will need it, once it is available. More information about COVID-19 vaccine development is available here.

What should I do if I have COVID-19 symptoms?

If you have any symptoms suggestive of COVID-19, call your health care provider or COVID-19 hotline for instructions and find out when and where to get a test, stay at home for 14 days away from others and monitor your health.

If you have shortness of breath or pain or pressure in the chest, seek medical attention at a health facility immediately. Call your health care provider or hotline in advance for direction to the right health facility.

If you live in an area with malaria or dengue fever, seek medical care if you have a fever.

If local guidance recommends visiting a medical centre for testing, assessment or isolation, wear a medical mask while travelling to and from the facility and during medical care. Also keep at least a 1-metre distance from other people and avoid touching surfaces with your hands.  This applies to adults and children.

Are there treatments for COVID-19?

Scientists around the world are working to find and develop treatments for COVID-19.

Optimal supportive care includes oxygen for severely ill patients and those who are at risk for severe disease and more advanced respiratory support such as ventilation for patients who are critically ill.

Dexamethasone is a corticosteroid that can help reduce the length of time on a ventilator and save lives of patients with severe and critical illness. Read our dexamethasone Q&A for more information.

Results from the WHO’s Solidarity Trial indicated that remdesivir, hydroxychloroquine, lopinavir/ritonavir and interferon regimens appear to have little or no effect on 28-day mortality or the in-hospital course of COVID-19 among hospitalized patients.

Hydroxychloroquine has not been shown to offer any benefit for treatment of COVID-19. Read our hydroxychloroquine Q&A for more information.

WHO does not recommend self-medication with any medicines, including antibiotics, as a prevention or cure for COVID-19. WHO is coordinating efforts to develop treatments for COVID-19 and will continue to provide new information as it becomes available.

Are antibiotics effective in preventing or treating COVID-19?

Antibiotics do not work against viruses; they only work on bacterial infections. COVID-19 is caused by a virus, so antibiotics do not work. Antibiotics should not be used as a means of prevention or treatment of COVID-19.

In hospitals, physicians will sometimes use antibiotics to prevent or treat secondary bacterial infections which can be a complication of COVID-19 in severely ill patients. They should only be used as directed by a physician to treat a bacterial infection.

Latest Report

Situation report - 209

Sources

Map, https://experience.arcgis.com/experience/685d0ace521648f8a5beeeee1b9125cd (last crawled Sun Nov 22 2020 02:07:49 GMT+0000 (Coordinated Universal Time))

Q&A Coronavirus, https://www.who.int/news-room/q-a-detail/q-a-coronaviruses (last crawled Sun Nov 22 2020 02:07:49 GMT+0000 (Coordinated Universal Time))

Situation repots, https://www.who.int/emergencies/diseases/novel-coronavirus-2019/situation-reports/ (last crawled Sun Nov 22 2020 02:07:49 GMT+0000 (Coordinated Universal Time))

Events as they happen, https://www.who.int/emergencies/diseases/novel-coronavirus-2019/events-as-they-happen (last crawled Sun Nov 22 2020 02:07:49 GMT+0000 (Coordinated Universal Time))

WHO Crawler, https://gitlab.com/botty-group/who-crawler

]]>
<![CDATA[Useful programs and scripts for your Home Server]]>https://senpai.club/useful-programs-and-scripts-for-your-home-server/5fa9b1d7b14ea1000149fa02Mon, 16 Mar 2020 23:20:06 GMTUseful programs and scripts for your Home Server

Running multiple home servers in many form-factors for several years I came across dozens of useful programs that may help you to set it up or maintain it. Here I will list some of them - and for each a quick guide on the installation and maybe some useful commands - as a reference for myself and others. I will also update it from time to time if I find some new. As I am using mostly my Raspberry Pi's I will use the user pi, the user and group id 1000 in all commands.

Also before using any scripts in general I want to remind you that you should always examine downloaded scripts before running them.

  • docker
    • Installation using convenience script
      curl -fsSL https://get.docker.com -o get-docker.sh
      sudo sh get-docker.sh
      sudo usermod -aG docker pi # relog after this
      
    • Useful commands
      docker run hello-world
      docker ps
      docker logs <container id>
  • docker-compose
    • Installation
      sudo apt install docker-compose
    • Useful commands
      docker-compose up -d (without -d for logs)
      docker-compose down
    • Example docker-compose.yml
      version: '2.0'
      services:
        web:
          build: .
          ports:
          - "5000:5000"
          volumes:
          - .:/code
          - logvolume01:/var/log
          links:
          - redis
        redis:
          image: redis
      volumes:
        logvolume01: {}
      
  • NodeJS 13.x
    • Installation
      curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
      sudo apt-get install -y nodejs
      
    • Useful commands
      node <file>
      npm run
      npm init
  • nodemon
    • Description
      nodemon restarts your application after a change in the current folder
    • Installation
      npm i -g nodemon
    • Usage
      nodemon <file>
  • pm2
    • Description
      pm2 is a process manager with load balancer
    • Installation
      npm install pm2 -g
    • Useful commands
      pm2 status
      pm2 logs <id>
      pm2 start <file>
      pm2 start <file> -- <extra parameters>
  • ssh tunnel
    • Description
      while ssh is already installed on most systems its tunnel feature can be used as a cheap way to forward traffic from a local host behind a firewall over a vps to the public
    • Usage
      ssh -tt -R 0.0.0.0:<server port>:localhost:<local port> root@host -i /home/pi/.ssh/id_rsa -N
    • Server settings
      Edit /etc/ssh/sshd_config and set GatewayPorts yes

Have you come across a useful command or program that I did not list here? Then please leave a comment so that I can add it to the list.

]]>
<![CDATA[A quick guide for Kubernetes on a Raspberry Pi (3, 3B, 4) cluster]]>https://senpai.club/kubernetes-on-raspberry-pi-3-3b-4/5fa9b1d7b14ea1000149f9f4Sun, 15 Mar 2020 21:51:21 GMT

While there are many guides on creating a cluster with Kubernetes there are less on how to create one with Raspberry Pi's (arm architecture) and even less for novices that explain in an easy way what to keep in mind when doing this.

When I started with this project I knew next to nothing about Kubernetes and what lies behind it. In this article, I will not go deeper into the material than setting it up correctly and deploying an example container (GitLab runner) from Docker hub.

Requirements

  • Raspberry Pi (at least 2GB RAM is recommended for the master so go for RPi 4)

A quick overview of Kubernetes and the used programs

  • kubeadm - master command for the cluster
  • kubelet - this runs the containers
  • kubectl - utility to control the cluster
  • flannel - overlay network for network configuration

Installing kubeadm, kubelet and kubectl

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

Initialize kubeadm (on master node only)

kubeadm init --apiserver-cert-extra-sans=<local ip of master node> --service-cidr 172.16.0.0/16 --pod-network-cidr=10.244.0.0/16

After initialization it will give you a command to join the cluster which shall be executed on all slave nodes. It will look something like this:

kubeadm join 192.168.0.66:6443 --token kgr932f.g3j3i453ji0t34 \
--discovery-token-ca-cert-hash sha256:f9i3fh39hf04h93iuh43g4jih3g4oiho3g4

Copy configuration

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Install Flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml

Example container - gitlab runner

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: gitlab-runner-arm
spec:
replicas: 4
template:
    metadata:
    labels:
        arch: arm
    spec:
    containers:
        - image: bostrot/gitlab-runner:latest
        name: gitlab-runner-arm
#          volumeMounts:
#          - mountPath: /etc/gitlab-runner
#            name: gitlab-etc
#          - mountPath: /home/gitlab-runner
#            name: gitlab-home
        env:
            - name: registrationToken
            value: <token>
            - name: description
            value: <cluster name>
#      volumes:
#        - name: gitlab-etc
#          emptyDir: {}
#        - name: gitlab-home
#          emptyDir: {}

Now you can create the container with kubectl apply -f runner.yml. You can shut it down with kubectl delete -f runner.yml.

Sources

Installing kubeadm, kubelet and kubectl - https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl (last visited Mar. 15, 2020)
The Kubernetes network model - https://kubernetes.io/docs/concepts/cluster-administration/networking/ (last visited Mar. 15, 2020)

]]>
<![CDATA[Inspiring TEDs]]>https://senpai.club/inspiring-teds/5fa9b1d7b14ea1000149fa00Sat, 14 Mar 2020 13:19:54 GMT
]]>
<![CDATA[DiY Streamdeck / Macro keyboard]]>https://senpai.club/diy-streamdeck-macro-keyboard/5fa9b1d7b14ea1000149f9faFri, 13 Mar 2020 23:00:13 GMTDiY Streamdeck / Macro keyboard

If you have ever needed some extra keys on your keyboard for easier to reach shortcuts or automation you probably heard about macro keyboards.

While there are easier and maybe cheaper ways, with software like AutoHotKey, to "reprogram" a second keyboard I decided to make my own macro keyboard. This has several reasons: For one it is smaller than most keyboards. Then it also costs less if you have the right parts already lying around.
For my setup, I used a Teensy 3.0 as an HID to simulate certain keys, combination or even text input.

The example code I provide does two things that I found useful with a bit of extra setup (changes may apply if another controller is used):

  1. Mute/Un-Mute on Discord
  2. Hold 'W' key for games where you have to move your character for a long distance
  3. Hold the left mouse key until another press to release it

My parts are as follows:

  1. Teensy 3.0
  2. Some old remote's plastic keypad
  3. Board to solder on
  4. 3D printed housing

Now the steps are pretty forward. I soldered some cables quick and dirty to the board, created contact points and put everything into a 3D printed case. The plastic keypad I used is one with conductive pads on the botton (black circles in picture) which was in found in an old remote. The cabling may be changed according to your needs. In my case connecting one side of the key ports to the analog pins and the other side to 3V was sufficient. The output of the analog pins with 10 bits would be 0 - 1023.

If you are using another Arduino you should checkout how to reflash the firmware to act as an HID device. Arduino itself has an article about it in their references.

DiY Streamdeck / Macro keyboard

int button[5];
bool curPressed[5];
bool pressedD = false;
bool pressedM = false;
void setup()
{                
  Serial.begin(38400);
}

void loop()                     
{
  // set button array to analog pins
  for (int i = 0; i < 5; i++) {
    button[i] = analogRead(i);
  }
  // button 1 pressed
  if (button[0] > 1000) {
    // check holding
    if (!curPressed[0]) {
      curPressed[0] = true;
      Keyboard.press(MODIFIERKEY_ALT);
      Keyboard.press(KEY_L);
      Keyboard.press(KEY_M);
      Keyboard.release(MODIFIERKEY_ALT);
      Keyboard.release(KEY_L);
      Keyboard.release(KEY_M);
      Serial.println("button 1");
    } 
  } else {
    curPressed[0] = false;
  }
  // button 2 pressed
  if (button[1] > 1000) {
    // check holding
    if (!curPressed[1]) {
      curPressed[1] = true;
      if (!pressedD) {
        pressedD = true;
        Keyboard.press(KEY_W);
      } else {
        pressedD = false;
        Keyboard.release(KEY_W);
      }
      Serial.println("button 2");
    } else {
      curPressed[1] = false;
    }
  }
  // button 3 pressed
  if (button[2] > 1000) {
    // check holding
    if (!curPressed[2]) {
      curPressed[2] = true;
      if (!pressedD) {
        pressedM = true;
        Mouse.set_buttons(1, 0, 0);
      } else {
        pressedM = false;
        Mouse.set_buttons(0, 0, 0);
      }
      Serial.println("button 3");
    } else {
      curPressed[2] = false;
    }
  }
  delay(250);
}

Sources

analogRead, https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ (last visited Mar. 13, 2020).

HID library, https://www.arduino.cc/en/Reference/HID (last visited Mar. 13, 2020).

Using USB Keyboard, https://www.pjrc.com/teensy/td_keyboard.html (last visited Mar. 13, 2020).

Human interface device, https://en.wikipedia.org/w/index.php?title=Human_interface_device&oldid=937206074 (last visited Mar. 13, 2020).

]]>
<![CDATA[ReadyNAS Duo v2 Upgrade to Debian Buster]]>https://senpai.club/upgrade-readynas-duo-v2-to-latest-debian/5fa9b1d7b14ea1000149f9f5Sat, 28 Dec 2019 10:57:41 GMT

Introduction

ReadyNAS Duo v2 Upgrade to Debian Buster

While searching for a good backup solution for my files, I found my old Ready NAS Duo v2 and thought it would be perfect for this, as it supports up to 4 TB of storage with two 3.5 inch hard drives. The only problem was that the original firmware of this device was outdated already several years ago. This would be critical security-wise for a device that is used to store partly sensitive data. So I started searching for a custom firmware which could give me the freedom I wanted for the NAS. Luckily, I found the website of a guy who ported the latest Debian to the NAS and was kind enough to post a detailed description of it. After altering the built config a bit I build the firmware for the NAS based on Debian.

The NAS got a 128 MD NAND-Flash Chip in-built which is not enough to store full Debian on it. Luckily there are still several ways to work around this. The easiest for me was putting the OS on an external USB stick with enough storage and create a cmd to autoboot from it.

Step by Step

Make sure to backup all your data before following this guide.

1. Enable UART on Raspberry PI (skip if not needed)

ReadyNAS Duo v2 Upgrade to Debian Buster

If you have a Serial Dongle or any UART device that can read the serial input you can skip this step. The RPi has a UART interface on the GPIO (pins 8 TX, 10 RX) with which you can communicate with the NAS. Before it can do that we have to enable those pins and disable its own console so it won't interfere. sudo raspi-config -> 5 Interfacing Options -> P6 Serial -> No (for serial console) -> Yes (for serial hardware) should do the trick. Now reboot and you should be able to open a connection with minicom or screen and speed 115200 (sudo screen /dev/ttyS0 115200).

2. Connect to the serial interface

ReadyNAS Duo v2 Upgrade to Debian Buster ReadyNAS Duo v2 Upgrade to Debian Buster

Remove the sticker from the backside of the NAS and connect TX->RX, RX->TX, GND->GND. When plugging in the power cable you should see something similar like this in the serial console:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|
 ** MARVELL BOARD: DB-88F6282A-BP LE

U-Boot 1.1.4 (Jun 29 2012 - 16:06:40) Marvell version: 3.4.27
Netgear version: Uboot-1_1_4-NetgearDUOV3-V1009

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006D0120

Soc: MV88F1155 Rev 1 (DDR3)
CPU running @ 1600Mhz L2 running @ 533Mhz
SysClock = 533Mhz , TClock = 200Mhz

DRAM unknown CAL  tRP = 8 tRAS = 20 tRCD=8
DRAM CS[0] base 0x00000000   size 256MB
DRAM Total size 256MB  16bit width
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:128 MB
Flash:  0 kB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: PCI Express Root Complex Interface
PEX interface detected Link X1
Plug On and Power down, Please Switch On !

Turn it on and press a key in the serial console to stop the autoboot. Then you will see something like this:

Switch On !

Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>

3. Booting kernel and Debian installer

Build or download the latest kernel and the debian installer.
Put them both on an usb stick, plug it into the NAS' front port and restart it with the whole procedure. Then find which USB port it is connected to with

usb start
usb storage

Now set the bootcmd to start from the usb and load the uImage to the location 0x1200000 and uInitrd to 0x2000000.

set bootcmd usb start;fatload usb 0:1 0x1200000 /uImage;fatload usb 0:1 0x2000000 /uInitrd;bootm 1200000 200000
boot

Now you should get a screen like the following:

ReadyNAS Duo v2 Upgrade to Debian Buster

Set up debian as you normally would and select your desired install location. I picked the USB stick itself as the location for the main OS. Your USB stick should have at least 1 GB of storage and preferably should be sacrificable. Now, wait for the installation to finish.

Problems and troubleshooting

USB stick is not recognized
Plug it into the front USB port as this one is directly connected to the mainboard.
Try another USB stick as the NAS is very picky and some newer ones may not work with it.

Make it cleaner
For esthetics, I directly soldered it to the board. In my case, it was a USB Stick 2.0 so I decided to attach it at the front USB to spare the two USB 3.0 ports on the back. I know, this is by far no perfect soldering and gluing job but it works.

ReadyNAS Duo v2 Upgrade to Debian Buster

Bricked device
If you still get an output on the serial port you might be able to unbrick the NAS with re-flashing the uboot image. Especially when you get stuck at Net: egiga0 [PRIME]. Get the latest uboot from the Netgear download site by extracting the RAIDiator file. Get kwboot (on Linux apt install u-boot-tools) and run kwboot -b uboot.bin -t /dev/ttyS0 -p (/dev/ttyS0 for RPi). Now turn the NAS on and it should boot the uboot image. Now abort the boot process with any key, load the uboot image from e.g. USB and erase/write the NAND with the image. (be careful to not turn it off after erasing the NAND as this could lead to permanent damage)

nand erase 0 0x180000
nand write 0x2000000 0 0x180000

Sources

Debian and upstream kernel on NETGEAR ReadyNAS Duo v2, http://natisbad.org/NAS/index.html (last visited Dec. 23, 2019).

How to unbrick the Netgear Ready NAS Duo v2, https://forum.doozan.com/read.php?3,74954 (last visited Dec. 27, 2019).

NV+ V2 stuck at booting, https://community.netgear.com/t5/Using-your-ReadyNAS-in-Business/NV-V2-stuck-at-booting/td-p/1008743 (last visited Dec. 28, 2019).

]]>
<![CDATA[Site under construction]]>https://senpai.club/site-under-construction/5fa9b1d7b14ea1000149f9f3Sun, 27 Oct 2019 00:16:12 GMT

Senpai.Club is currently under construction.
Meanwhile you can checkout the forums at https://www.bostrot.com.

... wait for it ...

]]>