Compare commits

..

23 Commits

Author SHA1 Message Date
Takumi Sueda
35f04a7b11 Override logind.conf to enable suspend with the power key 2023-02-26 00:45:45 +09:00
Takumi Sueda
ee93757ff1 Merge pull request #51 from brain-hackers/ci-ly-fix
Switch ly repository to freeze the source code
2023-01-18 04:25:37 +09:00
Takumi Sueda
9f41a0bbd2 Switch ly repository to freeze the source code 2023-01-10 19:14:57 +09:00
Takumi Sueda
9671252f5d Merge pull request #50 from brain-hackers/ci-bullseye
Change the base rootfs to bullseye
2022-12-21 13:11:01 +09:00
Takumi Sueda
935363d6ac Change the base rootfs to bullseye
It is unintentionally reverted back to buster
2022-12-21 13:09:18 +09:00
Takumi Sueda
25668a72e3 Merge pull request #49 from brain-hackers/bump
Update linux-brain: update keyboard driver & maximize brightness
2022-12-08 01:03:01 +09:00
Takumi Sueda
d7da4a6e44 Update linux-brain: update keyboard driver & maximize brightness 2022-12-08 01:02:34 +09:00
Takumi Sueda
8f3f63be44 Merge pull request #48 from brain-hackers/ci-timesyncd
Add systemd-timesyncd & revert back issue and os-release
2022-11-24 00:23:56 +09:00
Takumi Sueda
a4350f303c Fix sudoers 2022-11-23 23:28:22 +09:00
Takumi Sueda
f7a20f61b7 Revert back issue and os-release 2022-11-23 23:20:09 +09:00
Takumi Sueda
2ecec60001 Add systemd-timesyncd 2022-11-23 23:14:38 +09:00
Takumi Sueda
eaa027db98 Merge pull request #47 from brain-hackers/sudoer
Show asterisks in sudo
2022-11-23 23:07:09 +09:00
Takumi Sueda
53e39a8bb6 Show asterisks in sudo 2022-11-23 23:00:06 +09:00
Takumi Sueda
453fe8d60f Merge pull request #46 from brain-hackers/ci-update
Bump versions
2022-11-23 02:06:05 +08:00
Takumi Sueda
e7d3c4629a G5300 -> A7200 2022-11-23 01:23:39 +09:00
Takumi Sueda
57c5052909 Update BrainLILO: support 1G
1G is supported by no one else though
2022-11-23 00:14:58 +09:00
Takumi Sueda
84960b1471 Update u-boot-brain: unify 2G, update env 2022-11-23 00:12:11 +09:00
Takumi Sueda
515aff62be Update linux-brain: unify 2G, enable UAC 2022-11-23 00:11:29 +09:00
Takumi Sueda
6cf0f749d4 Merge pull request #44 from brain-hackers/fix
Fix
2022-11-13 20:35:42 +08:00
Takumi Sueda
7ca8ed3cc1 Install ly service 2022-11-13 21:35:03 +09:00
Takumi Sueda
f444f68a3b Install ca-certificates 2022-11-13 11:48:38 +09:00
Takumi Sueda
f503ef87ef Merge pull request #43 from brain-hackers/license
Add exeopener license agreement
2022-11-04 10:36:54 +09:00
Takumi Sueda
3f4afedf45 Add exeopener license agreement
as per the body approved by the original author
2022-11-03 00:39:09 +09:00
16 changed files with 124 additions and 260 deletions

View File

@@ -128,7 +128,7 @@ jobs:
strategy:
matrix:
include:
- model: g5300
- model: a7200
nk: edna3exe.bin
lilo: gen2.bin
- model: sh1

View File

@@ -1,8 +1,8 @@
JOBS=$(shell grep -c '^processor' /proc/cpuinfo)
UBOOT_CROSS?=$(shell ./tools/getcross u-boot)
LINUX_CROSS?=$(shell ./tools/getcross linux)
ROOTFS_CROSS?=$(shell ./tools/getcross rootfs)
UBOOT_CROSS=$(shell ./tools/getcross u-boot)
LINUX_CROSS=$(shell ./tools/getcross linux)
ROOTFS_CROSS=$(shell ./tools/getcross rootfs)
export ARCH=arm
.PHONY:
@@ -144,9 +144,9 @@ brainux:
sudo mkdir -p brainux
@if [ "$(CI)" = "true" ]; then \
echo "I'm in CI and debootstrap without cache."; \
sudo debootstrap --arch=$(ROOTFS_CROSS) --foreign buster brainux/; \
sudo debootstrap --arch=$(ROOTFS_CROSS) --foreign bullseye brainux/; \
else \
sudo debootstrap --arch=$(ROOTFS_CROSS) --foreign buster brainux/ http://localhost:65432/debian/; \
sudo debootstrap --arch=$(ROOTFS_CROSS) --foreign bullseye brainux/ http://localhost:65432/debian/; \
fi
sudo cp /usr/bin/qemu-arm-static brainux/usr/bin/
sudo cp ./os-brainux/setup_brainux.sh brainux/
@@ -157,9 +157,6 @@ brainux:
image/sd.img: clean_work
./image/build_image.sh
image/emmc.img: clean_work
./image/build_image_emmc.sh
image/sd_x1.img: clean_work
./image/build_image_x1.sh

23
image/LICENSE Normal file
View File

@@ -0,0 +1,23 @@
*** exeopener ***
MIT License
Copyright (c) 2022 Chiharu Shirasaka
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -11,21 +11,20 @@ export CROSS_COMPILE=arm-linux-gnueabi-
mkdir -p ${WORK}
mkdir -p ${WORK}/lilobin
# for i in "g5300" "sh1" "sh2" "sh3" "sh4" "sh5" "sh6" "sh7"; do
for i in "sh1"; do
for i in "a7200" "sh1" "sh2" "sh3" "sh4" "sh5" "sh6" "sh7"; do
NUM=$(echo $i | sed -E 's/sh//g')
make -C ${REPO}/u-boot-brain distclean pw${i}_defconfig
make -j${JOBS} -C ${REPO}/u-boot-brain u-boot.sb
#${REPO}/nkbin_maker/bsd-ce ${REPO}/u-boot-brain/u-boot.bin
make -j${JOBS} -C ${REPO}/u-boot-brain u-boot.bin
${REPO}/nkbin_maker/bsd-ce ${REPO}/u-boot-brain/u-boot.bin
case $i in
"g5300")
"a7200")
mv ${REPO}/nk.bin ${WORK}/edna3exe.bin
mv ${REPO}/u-boot-brain/u-boot.bin ${WORK}/lilobin/gen2.bin;;
"sh1" | "sh2" | "sh3")
# mv ${REPO}/nk.bin ${WORK}/edsa${NUM}exe.bin
mv ${REPO}/u-boot-brain/u-boot.sb ${WORK}/lilobin/gen3_${NUM}.sb;;
mv ${REPO}/nk.bin ${WORK}/edsa${NUM}exe.bin
mv ${REPO}/u-boot-brain/u-boot.bin ${WORK}/lilobin/gen3_${NUM}.bin;;
"sh4" | "sh5" | "sh6" | "sh7")
mv ${REPO}/nk.bin ${WORK}/edsh${NUM}exe.bin
mv ${REPO}/u-boot-brain/u-boot.bin ${WORK}/lilobin/gen3_${NUM}.bin;;
@@ -35,18 +34,15 @@ for i in "sh1"; do
esac
done
dd if=/dev/zero of=${IMG} bs=1M count=2048
dd if=/dev/zero of=${IMG} bs=1M count=3072
START1=2048
SECTORS1=$((1024 * 1024 * 64 / 512))
START2=$((2048 + ${SECTORS1}))
SECTORS1=$((1024 * 1024 * 8 / 512))
START2=$((2048 + ${SECTORS1} + ${SECTORS2}))
cat <<EOF > ${WORK}/part.sfdisk
${IMG}1 : start=${START1}, size=${SECTORS1}, type=b
${IMG}2 : start=${START2}, size=${SECTORS2}, type=53
${IMG}3 : start=${START3}, type=83
${IMG}2 : start=${START2}, type=83
EOF
sfdisk ${IMG} < ${WORK}/part.sfdisk
@@ -55,21 +51,17 @@ sudo kpartx -av ${IMG}
LOOPDEV=$(losetup -l | grep sd.img | grep -o 'loop.' | tail -n 1)
${REPO}/image/mk_hdr.sh `fdisk -lu /dev/${LOOPDEV} | awk '$6==53 {print $2}'` 1 > ${WORK}/header.bin
dd if=${WORK}/header.bin of=/dev/${LOOPDEV}p2 ibs=512 conv=sync
dd if=${WORK}/lilobin/gen3_1.sb of=/dev/${LOOPDEV}p2 ibs=512 obs=512 seek=1 conv=sync
sudo mkfs.fat -n boot -F32 -v -I /dev/mapper/${LOOPDEV}p1
sudo mkfs.ext4 -L rootfs /dev/mapper/${LOOPDEV}p3
sudo mkfs.ext4 -L rootfs /dev/mapper/${LOOPDEV}p2
mkdir -p ${WORK}/p1 ${WORK}/p3
mkdir -p ${WORK}/p1 ${WORK}/p2
sudo mount -o utf8=true /dev/mapper/${LOOPDEV}p1 ${WORK}/p1
sudo mount /dev/mapper/${LOOPDEV}p3 ${WORK}/p3
sudo mount /dev/mapper/${LOOPDEV}p2 ${WORK}/p2
sudo cp ${LINUX}/arch/arm/boot/zImage ${WORK}/p1/
sudo cp ${LINUX}/arch/arm/boot/dts/imx28-pw*.dtb ${WORK}/p1/
# sudo mkdir -p ${WORK}/p1/nk
# sudo cp ${WORK}/*.bin ${WORK}/p1/nk/
sudo mkdir -p ${WORK}/p1/nk
sudo cp ${WORK}/*.bin ${WORK}/p1/nk/
make -C ${REPO}/brainlilo
@@ -85,10 +77,10 @@ sudo cp ${REPO}/image/exeopener.exe "${LILO}/AppMain.exe"
sudo mkdir -p ${WORK}/p1/loader
sudo cp ${WORK}/lilobin/*.bin ${WORK}/p1/loader/
sudo cp -ra ${REPO}/brainux/* ${WORK}/p3/
sudo cp -ra ${REPO}/brainux/* ${WORK}/p2/
sudo umount ${WORK}/p1 ${WORK}/p3
sudo umount ${WORK}/p1 ${WORK}/p2
sudo kpartx -d ${IMG}
rmdir ${WORK}/p1 ${WORK}/p3
rmdir ${WORK}/p1 ${WORK}/p2

View File

@@ -1,57 +0,0 @@
#!/bin/bash
set -uex -o pipefail
JOBS=$(nproc)
REPO=$(git rev-parse --show-toplevel)
WORK=${REPO}/image/work
LINUX=${REPO}/linux-brain
IMG=${REPO}/image/sd.img
export CROSS_COMPILE=${CROSS_COMPILE:="arm-linux-gnueabi-"}
mkdir -p ${WORK}
mkdir -p ${WORK}/lilobin
for i in "sh1"; do
NUM=$(echo $i | sed -E 's/sh//g')
make -C ${REPO}/u-boot-brain distclean pw${i}_defconfig
make -j${JOBS} -C ${REPO}/u-boot-brain u-boot.sb u-boot.bin
case $i in
"sh1" | "sh2" | "sh3")
mv ${REPO}/u-boot-brain/u-boot.sb ${WORK}/lilobin/gen3_${NUM}.sb
mv ${REPO}/u-boot-brain/u-boot.bin ${WORK}/lilobin/gen3_${NUM}.bin;;
*)
echo "WTF: $i"
exit 1;;
esac
done
dd if=/dev/zero of=${IMG} bs=1M count=96
START1=2048
SECTORS1=$((1024 * 1024 * 64 / 512))
START2=$((2048 + ${SECTORS1}))
SECTORS2=$((1024 * 1024 * 8 / 512))
START3=$((2048 + ${SECTORS1} + ${SECTORS2}))
cat <<EOF > ${WORK}/part.sfdisk
${IMG}1 : start=${START1}, size=${SECTORS1}, type=b
${IMG}2 : start=${START2}, size=${SECTORS2}, type=53
${IMG}3 : start=${START3}, type=83
EOF
sfdisk ${IMG} < ${WORK}/part.sfdisk
sudo kpartx -av ${IMG}
LOOPDEV=$(losetup -l | grep sd.img | grep -o 'loop.' | tail -n 1)
${REPO}/image/mk_hdr.sh `fdisk -lu /dev/${LOOPDEV} | awk '$6==53 {print $2}'` 1 > ${WORK}/header.bin
dd if=${WORK}/header.bin of=/dev/${LOOPDEV}p2 ibs=512 conv=sync
dd if=${WORK}/lilobin/gen3_1.sb of=/dev/${LOOPDEV}p2 ibs=512 obs=512 seek=1 conv=sync
# sudo mount -o utf8=true /dev/mapper/${LOOPDEV}p1 ${WORK}/p1
# sudo mount /dev/mapper/${LOOPDEV}p2 ${WORK}/p2
sudo kpartx -d ${IMG}

View File

@@ -1,148 +0,0 @@
#!/bin/bash
# mk_hdr.sh
# Redistributed URL: https://github.com/embeddedTS/linux-2.6.35.3-imx28/blob/master/mk_hdr.sh
#
# This program is distributed with mk_mx28_sd that has the text of 3-Clause BSD License.
# Both are considered to be licenced under the same agreement so we put the text here.
# Copyright (c) 2010 Freescale Semiconductor, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# o Redistributions of source code must retain the above copyright notice, this list
# of conditions and the following disclaimer.
#
# o Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or
# other materials provided with the distribution.
#
# o Neither the name of Freescale Semiconductor, Inc. nor the names of its
# contributors may be used to endorse or promote products derived from this
# software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Usage: make_boot <base_sector> <num_sb_files>
#
# where
#
# <base_sector> is the first sector _of the boot stream partition (i.e. /sd#2 or /sd#3, etc)
# <num_sb_files> is the # of boot stream blocks (currently only 1 supported)
#[ $1 = ] && { echo -e " error - boot partition start sector missing" ; exit };
#[ $2 = ] && { echo -e " error - # of bootable images in .sb file missing" ; exit };
# Future usage: make_boot <dev_partition> <sb_file_tag,sb_sector_offset> <sb_file_tag2, base_addr2> ...
#
# Where base sector comes from MBR, and sb_sector_offset is an offset from start of boot-partition, not absolute sector.
#Script Vars
base_sector=$1
numbootstreams=$2
primary=0
secondary=0
#########################################
# out_byte args...
#
# this function writes the binary value to stdout of each argument in the order given
# i.e. out_byte 0 1 2 3 will echo "\x00\x01\x02\x03" to stdout (w/o terminating null )
function out_byte(){
for val in $*
do
# echo -e "byte=$val"
echo -en "\\x$(printf %02x $val)"
done
}
function out_u32_le()
{
for val32 in $*
do
val=$(($val32))
b0=$((val % (2**8)))
val=$((val / (2**8)))
b1=$((val % (2**8)))
val=$((val / (2**8)))
b2=$((val % (2**8)))
val=$((val / (2**8)))
b3=$((val % (2**8)))
### Keep around for debug/verbose output
# printf "$val32 ==> %02x%02x%02x%02x\n" $b0 $b1 $b2 $b3
### Output the bytes in binary form
#
out_byte $b0 $b1 $b2 $b3
done
}
function out_bcb ()
{
signature=0x00112233
primary_tag=$1
secondary_tag=$2
num_bsb=$3
out_u32_le signature primary_tag secondary_tag num_bsb
}
# usage: out_bsb tag base_sector
# where base_sector is relative to partition
# i.e. if partition starts on lba 63 & first boot stream, base_sector = 1, not 64
# This function will automatically compute the absolute base sector.
function out_bsb
{
abs_sector=$(($2 + $base_sector))
# unused0
out_u32_le 0
# unused1
out_u32_le 0
# tag boot stream tag
out_u32_le $1
# boot stream base sector (absolute)
out_u32_le $abs_sector
# unused2
out_u32_le 0
}
###############################
# Send header output to std out
###############################
# Output boot stream signature & info
# out_u32_le signature primary secondary numbootstreams
out_bcb primary secondary numbootstreams
# Output .sb starting sector info
# out_u32_le unused0 unused1 tag base_sector unused2
out_bsb primary 1
# Output bsb for sb #2
#out_bsb tag_[p|s] base_sector_2
# Output bsb for sb #n
# out_bsb tag_[p|s] base_sector_n
#

View File

@@ -5,14 +5,14 @@ set -uex -o pipefail
SRC=$1
DST=$2
install -g root -o root -m 0644 $SRC/usr/lib/os-release $DST/usr/lib/os-release
install -g root -o root -m 0644 $SRC/etc/issue $DST/etc/issue
install -g root -o root -m 0644 $SRC/etc/issue.net $DST/etc/issue.net
install -g root -o root -m 0644 $SRC/etc/motd $DST/etc/motd
install -g root -o root -m 0440 $SRC/etc/sudoers $DST/etc/sudoers
install -g root -o root -m 0644 $SRC/etc/X11/xorg.conf $DST/etc/X11/xorg.conf
install -g root -o root -m 0644 $SRC/etc/X11/Xsession.d/96calibrate $DST/etc/X11/Xsession.d/96calibrate
install -g root -o root -m 0644 $SRC/etc/systemd/logind.conf $DST/etc/systemd/logind.conf
install -g root -o root -m 0644 -D $SRC/etc/xdg/weston/weston.ini $DST/etc/xdg/weston/weston.ini
install -g 1000 -o 1000 -m 0644 $SRC/home/user/.xprofile $DST/home/user/.xprofile

View File

@@ -1,2 +0,0 @@
Brainux GNU/Linux 10 \n \l

View File

@@ -1 +0,0 @@
Brainux GNU/Linux 10

View File

@@ -0,0 +1,27 @@
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset,pwfeedback
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.d

View File

@@ -0,0 +1,41 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#UserStopDelaySec=10
HandlePowerKey=suspend
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#HandleRebootKey=reboot
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#RebootKeyIgnoreInhibited=no
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RuntimeDirectoryInodes=400k
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192

View File

@@ -1,9 +0,0 @@
PRETTY_NAME="Brainux GNU/Linux 11 (bullseye)"
NAME="Brainux GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://github.com/brain-hackers/README"
SUPPORT_URL="https://github.com/brain-hackers/buildbrain"
BUG_REPORT_URL="https://github.com/brain-hackers/buildbrain"

View File

@@ -55,10 +55,10 @@ echo "brain" > /etc/hostname
# Install packagecloud repository
# Reference: https://packagecloud.io/brainhackers/brainux/install
# curl: downloads the GPG key from packagecloud
# curl, ca-certificates: downloads the GPG key from packagecloud
# gnupg, debian-archive-keyring: packagecloud verification dependency
DEBIAN_FRONTEND=noninteractive \
apt install -y curl gnupg debian-archive-keyring
apt install -y curl ca-certificates gnupg debian-archive-keyring
# apt-transport-https can be installed after debian-archive-keyring being installed
DEBIAN_FRONTEND=noninteractive \
@@ -85,7 +85,7 @@ DEBIAN_FRONTEND=noninteractive \
weston xwayland \
bash tmux vim htop \
midori pcmanfm lxterminal xterm gnome-terminal fbterm uim-fep uim-anthy fonts-noto-cjk \
dbus udev alsa-utils usbutils iw fake-hwclock\
dbus udev alsa-utils usbutils iw fake-hwclock systemd-timesyncd\
build-essential flex bison pkg-config autotools-dev libtool autoconf automake device-tree-compiler \
python3 python3-dev python3-setuptools python3-wheel python3-pip python3-smbus \
resolvconf net-tools ssh openssh-client avahi-daemon wget git \
@@ -101,10 +101,11 @@ systemctl enable fake-hwclock
DEBIAN_FRONTEND=noninteractive \
apt install -y libpam0g-dev libxcb-xkb-dev
cd /
git clone --recurse-submodules https://github.com/nullgemm/ly.git
git clone --recurse-submodules -b master-24f017e https://github.com/brain-hackers/ly.git
cd ly
make
make install
make installsystemd
cd /
rm -r ly
systemctl enable ly