The virtual console is the “shell” that you use to log into and startx. The virtual console is started before any graphical interface, and it’s implemented in the kernel!!! wow!!!
loadkeys dvorak
Create the following file with the following content.
cat /etc/vconsole.conf
To see available keymaps localectl lest-keymaps
localectl list-keymaps | egrep -m 10 ".*"
You can tweak some of these settings w/ evtest tool
- do it through .xinitrc
cd ~/; cat .xinitrc | grep xkb;
Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" # You can enable or disable tap buttons Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" # disable trackpad whilst typing PalmDetect=1 # tweak the minimum amount of touch your palm has to touch to be considered a touch PalmMinWidth=8 # tweak the minimum pressure to be considered a palm PalmMinZ=100 # scrolling when you slide your finger down the edge of the track pad Option "VertEdgeScroll" "on" Option "VertTwoFingerScroll" "on" Option "HorizEdgeScroll" "on" Option "HorizTwoFingerScroll" "on" Option "CircularScrolling" "on" Option "CircScrollTrigger" "2" Option "EmulateTwoFingerMinZ" "40" Option "EmulateTwoFingerMinW" "8" Option "CoastingSpeed" "0" Option "FingerLow" "35" Option "FingerHigh" "40" EndSection
Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" # You can enable or disable tap buttons Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" # disable trackpad whilst typing PalmDetect=1 # tweak the minimum amount of touch your palm has to touch to be considered a touch PalmMinWidth=8 # tweak the minimum pressure to be considered a palm PalmMinZ=100 EndSection
Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" # You can enable or disable tap buttons Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" EndSection
The etc/X11/xorg.conf.d directory stores host-specific configuration. You are free to add configuration files there, but they must have a .conf suffix: the files are read in ASCII order, and by convention their names start with XX- (two digits and a hyphen, so that for example 10 is read before 20). These files are parsed by the X server upon startup and are treated like part of the traditional xorg.conf configuration file. The X server essentially treats the collection of configuration files as one big file with entries from xorg.conf at the end.
Section “InputClass” Identifier “libinput pointer catchall” MatchIsPointer “on” MatchDevicePath “/dev/input/event*” Driver “libinput” EndSection
Section “InputClass” Identifier “libinput keyboard catchall” MatchIsKeyboard “on” MatchDevicePath “/dev/input/event*” Driver “libinput” EndSection
Section “InputClass” Identifier “libinput touchpad catchall” MatchIsTouchpad “on” MatchDevicePath “/dev/input/event*” Driver “libinput” EndSection
Section “InputClass” Identifier “libinput touchscreen catchall” MatchIsTouchscreen “on” MatchDevicePath “/dev/input/event*” Driver “libinput” EndSection
/etc/systemd/system/[email protected]/override.conf
[Service] ExecStart= ExecStart=-/usr/bin/agetty –autologin USERNAME –noclear %I $TERM
- Install the xorg-xinit package
- Add this to the bottom of ~/.bash_profile
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
- Add this to the bottom of your ~/.xinitrc
exec WINDOW-manager
It could be
exec awesome
Or
exec gnome-session
Or
startkde
If you do not see the desktop environment or window manager of your choice, check the arch wiki page of that environment or window manager. It will normally tell you how to start it via ~/.xinitrc
Systemd is the init system for Arch GNU/Linux and several other distros. It replaces SvInit, which is a bash based init system, that is very outdated. One can use systemd to start various programs on boot. After boot, one can check the status of those programs, restart them, stop them, or enable new ones to start at boot.
Systemd also comes bundled with a journal called journald. Journald stores all of its logging information in a binary format, so to query the log, you need to use journald (or write your own piece of software to do it for you).
systemctl status
Let’s see if Apache is running.
systemctl status httpd.service
And it is good.
su
systemctl stop httpd
su
systemctl start httpd
su
systemctl restart httpd
su
systemctl disable httpd
su
systemctl enable httpd
Systemd’s timestamps have the format
[day] [<year>-<month>-<day>] [<hour in military time>:<minutes>:<seconds>]
For example: Tue 2015-01-03 16:34:42
Systemd is a much better replacement of using cron jobs! It gives you some nice logging information about your units. You can use the following units to refer to time:
- s –> seconds ie:
5s
is 5 seconds - m –> minutes ie:
5m
is 5 minutes - h –> hours ie:
5h
is 5 hours - d –> days ie:
5d
is 5 days - w –> weeks ie:
5w
is 5 weeks - m –> months ie:
5m
is 5 months - y –> years ie:
5y
is 5 yearsSystemd’s repeating events format is the following:
[<day of week>[,<another day of the week>][,…]] DAY TIME
An example of this is:
Thu,Fri 2012-*-1,5 11:12:13
This means that at approximately 11:12am of any month in 2012, where it is the 1st or 5th of the month, systemd will execute this unit. Think of * as the regexp “.*”, anything can go inside the “*”.
To clarify systemd’s repeating notation let’s take a look at some examples:
hourly → *-*-* *:00:00
So valid timestamps that this includes are:2015-01-01
2015-01-02
2015-01-03
2015-02-01
2015-02-02
2015-02-03
2016-02-01
2016-02-02
2016-02-03
This means that any day of the year this event will take place. Ok what about at what time? Well valid time stamps include every hour of the day! like these:
*-*-* 06:00:00
*-*-* 07:00:00
*-*-* 08:00:00
*-*-* 10:00:00
*-*-* 11:00:00
*-*-* 12:00:00
*-*-* 18:00:00
So, at every hour, this systemd will trigger this event.Let’s see what daily means.
daily → *-*-* 00:00:00
Valid timestamps that could fix here include:2016-01-01 00:00:00
2016-01-02 00:00:00
2016-01-03 00:00:00
2016-02-01 00:00:00
2016-02-02 00:00:00
2016-02-03 00:00:00
2015-02-01 00:00:00
2015-02-02 00:00:00
2015-02-03 00:00:00
So on any day at midnight, systemd will trigger this event.
Here is a complicated example:
mon,fri *-1/2-1,3 *:30:45 → Mon,Fri *-01/2-01,03 *:30:45
This means that any Monday or Friday on any year, during January or February, on the 1st or 3rd day,
Here are some more examples taken from the systemd wiki.
Sat,Thu,Mon-Wed,Sat-Sun → Mon-Thu,Sat,Sun *-*-* 00:00:00 Mon,Sun 12-*-* 2,1:23 → Mon,Sun 2012-*-* 01,02:23:00 Wed *-1 → Wed *-*-01 00:00:00 Wed-Wed,Wed *-1 → Wed *-*-01 00:00:00 Wed, 17:48 → Wed *-*-* 17:48:00 Wed-Sat,Tue 12-10-15 1:2:3 → Tue-Sat 2012-10-15 01:02:03 *-*-7 0:0:0 → *-*-07 00:00:00 10-15 → *-10-15 00:00:00 monday *-12-* 17:00 → Mon *-12-* 17:00:00 Mon,Fri *-*-3,1,2 *:30:45 → Mon,Fri *-*-01,02,03 *:30:45 12,14,13,12:20,10,30 → *-*-* 12,13,14:10,20,30:00 mon,fri *-1/2-1,3 *:30:45 → Mon,Fri *-01/2-01,03 *:30:45 03-05 08:05:40 → *-03-05 08:05:40 08:05:40 → *-*-* 08:05:40 05:40 → *-*-* 05:40:00 Sat,Sun 12-05 08:05:40 → Sat,Sun *-12-05 08:05:40 Sat,Sun 08:05:40 → Sat,Sun *-*-* 08:05:40 2003-03-05 05:40 → 2003-03-05 05:40:00 05:40:23.4200004/3.1700005 → 05:40:23.420000/3.170001 2003-03-05 05:40 UTC → 2003-03-05 05:40:00 UTC 2003-03-05 → 2003-03-05 00:00:00 03-05 → *-03-05 00:00:00 hourly → *-*-* *:00:00 daily → *-*-* 00:00:00 daily UTC → *-*-* 00:00:00 UTC monthly → *-*-01 00:00:00 weekly → Mon *-*-* 00:00:00 yearly → *-01-01 00:00:00 annually → *-01-01 00:00:00 *:2/3 → *-*-* *:02/3:00
journalctl -b
shows messages from this boot
journalctl -b -N
shows messages from the nth boot ago
journalctl --since="2016-03-28 10:42:16"
journalctl “path to binary”
journalctl -b /usr/lib/systemd/systemd-networkd
ps -e | grep httpd
Let’s see any logs from pid 24738
journalctl -b _PID=24738
journalctl -bu httpd.service
I disabled the avahi daemon. I do not need it.
https://wiki.archlinux.org/index.php/Network_configuration#Change_device_name
When you first start your computer your internet device names will be odd like this:
ip link
To fix this, just create some default rules that use the devices MAC address to name it something readable.
cat /etc/udev/rules.d/10-network.rules;
# make my wifi be named wifi0 SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="60:33:4b:09:d2:da", NAME="wifi0" #make my ethernet be SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="60:33:4b:8e:60:d0", NAME="neteth0"
https://wiki.archlinux.org/index.php/Netctl#Configuration
Use some of the examples from
ls /etc/netctl/examples/
cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/ethernet-dhcp;
Then you just need to change the device name to your device. Here, I’ve changed Interface=eth0 to Interface=neteth0
su
cat /etc/netctl/neteth0-dhcp | grep Interface
Download and install ifplugd, which is the arch package that handles ethernet connections.
su
pacman -S ifplugd
su
systemctl start [email protected]
systemctl enable [email protected]
One can block all incoming traffic from Facebook, block specified ports, etc.
With it you can block all incoming data from facebook, a specified port, etc.
If you totally screw up your iptables, you can change them back to the default values:
I tried to set up the simple stateful firewall, but then my internet would randomly go down. So I’m guessing that whoever made that firewall on the wiki didn’t really know what they were doing. Anyway, the next time that you try to do the simple stateful firewall, you can always put the system back to the way that it was with the following script:
su
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X
iptables -t security -F
iptables -t security -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables-save > /etc/iptables/iptables.rules
cat /etc/iptables/iptables.rules
systemctl restart iptables
ip link set neteth0 up
You can then check the state of the device via:
ip link
Now don’t think that this is the typical output. I’ve personally renamed my internet devices, so your names might look different. Your wifi device is probably starts with a “w” and the ethernet with a “e”.
ip link show dev neteth0
If you see “state UP”, then the device is connected!
If you see “state DOWN”, then the device is not connected.
cat /etc/iptables/iptables.rules.backup
sudo systemctl start mysqld.service
You might try a:
mysql_update_root -p
ip addr show
su
ip link set neteth0 up
ip addr show
See the status for just 1 device, and you can see that the device “neteth0”, which is my ethernet card, is not connected to the internet. I know that because I see state DOWN
.
ip link show dev neteth0
su
ip link set neteth0 up
su
ip link set neteth0 down
php-fpm is a module for apache that runs php code super fast. To let phtml code to run you’ll need to follow this guide, but change etc/httpd/conf/extra/php-fpm.conf
to
<FilesMatch \.ph[phtml].*$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
<Proxy "fcgi://localhost/" enablereuse=on max=10>
</Proxy>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
You may also need to uncomment the following line in /etc/php/php-fpm.d/www.conf
and add “.phtml”
cat /etc/php/php-fpm.d/www.conf | grep -B 6 "phtml"
Then you will have to restart httpd and php-fpm
su
systemctl restart httpd
systemctl restart php-fpm
Apache runs as user “http” and serves the files from http. Perhaps your files do not have the correct permissions? I have my html in ~/programming/waypoint, but I’ve created a symlink from srv/http to ~/programming/waypoint. That is why you see the lots of “->” in the next command. “->” means symlink.
ls -lh /srv/http
ls -lh ~/programming/ | grep waypoint
You can see that the owner is “joshua” and the group is “http”.
Arch GNU/Linux configuration is located in /etc/php/php-fpm.d/www.conf
, and pm.max_children is
The number of child processes to be created when pm is set to static and the maximum number of child processes to be created when pm is set to dynamic. This option is mandatory.
This option sets the limit on the number of simultaneous requests that will be served. Equivalent to the ApacheMaxClients directive with mpm_prefork and to the PHP_FCGI_CHILDREN environment variable in the original PHP FastCGI.
You can read more here.
cat /etc/php/php-fpm.d/www.conf | grep "pm.max_children" -A 5 -B 3
The information for killing programs for this program was be found here.
killall PROGRAMNAME
Killall kills all processes with the name PROGRAMNAME. You might have to run it twice to kill the program successfully.
For example to kill all the terminals with:
killall lxterminal
That command sends the termination signal to all processes with the name “lxterminal”. killall NAME
is the safest way to kill a non-responsive (or even responsive) program.
BUT, if your program does not shutoff when you execute killall name
, you can try
killall -SIGHUG NAME
This reloads configuration files and open/closes log files. I’m not sure if it actually kills the program.
If you still can’t close the program try:
killall -SIGKILL
This sends the kill signal. The program exists as fast as it can, without saving any data.
kill <process ID>
kill, kills the process ID.
So suppose I have several firefox instances running. killall firefox
would kill every instance of firefox. I only want to
kill the nonresponsive firefox. That’s where kill comes it. It only kills the 1 process ID.
kill PROGRAMNAME
Kill with the name PROGRAMNAME. You might have to run it twice to kill the program successfully.
For example to kill all the terminals with:
kill lxterminal
That command sends the termination signal to all processes with the name “lxterminal”. kill NAME
is the safest way to kill a non-responsive (or even responsive) program.
BUT, if your program does not shutoff when you execute kill name
, you can try
kill -SIGHUG NAME
This reloads configuration files and open/closes log files. I’m not sure if it actually kills the program.
If you still can’t close the program try:
kill -SIGKILL NAME
This sends the kill signal. The program exists as fast as it can, without saving any data.
Thunar will automount media, which is quite cool!
You need to have thunar-volman installed to get it working properly.
You need to have thunar --daemon
auto-started when you login.
thunar-volman-settings lets you configure what command to run to auto mount media.
To automount and run a DVD you only need to specify vlc /dev/sr0
VLC can be controlled by a web browser.
vlc --extraintf=http --http-host 0.0.0.0:8080 --http-password 'YourPasswordHere'
<<<<<<< variant A Now navigate to http://127.0.0.1:8080, and you can manage VLC with your web browser! >>>>>>> variant B Killall kills all processes with the name PROGRAMNAME. You might have to run it twice to kill the program successfully. ======= end
Just enter in the password and leave the username blank.
- State “DONE” from “TODO” [2016-04-15 Fri 07:57]
- State “TODO” from [2016-03-29 Tue 19:06]
I seemed to be using a bad ethernet cord. I switched ethernet cords and my laptop now works fine. BUT the “bad” ethernet cord is powering my desktop, and it doesn’t have a problem staying connected to the internet. Maybe my laptop is just a wuss at connecting to the internet.
When this happens, I try to see the status of my ethernet device.
su
ip link show dev neteth0
Apparently my ethernet device is currently down. Ok, let’s set it up.
su
ip link set neteth0 up
Let’s see if that turned the device up.
su
ip link show dev neteth0
Nope the device is still down. Ok let’s see what systemd can tell us. Let’s check on the status of systemd-networkd, which is what I use to configure my dhcp ethernet connection.
su
systemctl status systemd-networkd
It looks like networkd is still running, but I don’t have internet either.
Well I see an error for neteth0: Could not drop address: No such process
. Maybe I can get some more details by consulting the journal. Let’s only show messages from this boot and only showing the logging info from networkd binary.
journalctl -b /usr/lib/systemd/systemd-networkd
Well I see that neteth0 was renamed to eth0, then renamed to neteth0 again. Is that causing an issue? I see that IPv6 is being used. How can I shut that off?
I also see that neteth0 lost the carrier. What does that mean?
I also see that neteth0 could not drop address: No such process. What does that mean? Maybe my resolv.conf doesn’t have any DHCP servers available. Let’s check:
su
cat /etc/resolv.conf
Well I have 2 nameservers defined. I believe those are from OpenDNS or something, NOT the default matchbox ones.
So what is wrong? Why am I losing my internet connection?
Something ping does not work.
ping -c 5 www.google.com
BUT I’m still connected to the internet!??
ip link show dev neteth0
grep "OnCalendar=" /etc/systemd/system/[email protected]
Reload the configuration
su
systemctl daemon-reload
su
systemctl daemon-reload
systemctl start [email protected]
- State “TODO” from “DONE” [2016-03-31 Thu 18:59]
- State “DONE” from “TODO” [2016-03-29 Tue 19:06]
- State “TODO” from [2016-03-29 Tue 19:05]
su
sudo systemctl disable halt.service
sudo systemctl disable poweroff.service
sudo systemctl disable reboot.service
Well I am going to try to disable these services, and see if that helps
su
systemctl disable ctrl-alt-del.target
systemctl disable exit.target
systemctl disable halt.target
systemctl disable poweroff.target
systemctl disable reboot.target
The problem was laptop mode tools. This thread suggested that I should uninstall laptop mode tools, which I did. https://bbs.archlinux.org/viewtopic.php?id=209100
- State “DONE” from “TODO” [2016-04-16 Sat 09:58]
- State “TODO” from [2016-04-01 Fri 08:31]
- State “TODO” from [2016-04-18 Mon 08:43]
- State “TODO” from [2016-04-16 Sat 09:58]
Apr 18 08:11:04 parabola nscd[352]: 352 cannot create /var/db/nscd/passwd; no persistent database used Apr 18 08:11:04 parabola nscd[352]: 352 cannot create /var/db/nscd/group; no persistent database used Apr 18 08:11:04 parabola nscd[352]: 352 cannot create /var/db/nscd/hosts; no persistent database used Apr 18 08:11:04 parabola nscd[352]: 352 cannot create /var/db/nscd/services; no persistent database used Apr 18 08:11:04 parabola nscd[352]: 352 cannot create /var/db/nscd/netgroup; no persistent database used
avahi, is a program that scans the network looking for printers.
Apr 18 08:11:05 parabola avahi-daemon[335]: Failed to find group 'avahi'.
Apr 18 08:11:06 parabola php-fpm[337]: PHP: syntax error, unexpected '$' in /etc/php/php.ini on line 1876
Apr 18 08:11:07 parabola php-fpm[337]: [18-Apr-2016 08:11:07] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/openssl.so' - /usr/lib/php/modules/openssl.so: cannot open shared object file: No such file or directory in Unknown on line 0
Apr 18 08:11:08 parabola systemd-logind[332]: Watching system buttons on /dev/input/event4 (Power Button) Apr 18 08:11:08 parabola systemd-logind[332]: Watching system buttons on /dev/input/event5 (Video Bus) Apr 18 08:11:08 parabola systemd-logind[332]: Watching system buttons on /dev/input/event2 (Power Button) Apr 18 08:11:08 parabola systemd-logind[332]: Watching system buttons on /dev/input/event1 (Lid Switch) Apr 18 08:11:08 parabola systemd-logind[332]: Watching system buttons on /dev/input/event3 (Sleep Button)
Apr 18 08:11:08 parabola httpd[341]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::6233:4bff:fe8e:60d0. Set the 'ServerName' directive globally to suppress this message
Is it a logind thing?
Apr 18 08:11:13 parabola systemd-logind[332]: System is powering down. Apr 18 08:11:13 parabola login[457]: pam_tally(login:auth): pam_get_uid; no such user Apr 18 08:11:13 parabola systemd[1]: Closed Load/Save RF Kill Switch Status /dev/rfkill Watch. Apr 18 08:11:13 parabola login[453]: pam_systemd(login:session): Failed to create session: Start job for unit [email protected] failed with 'canceled' Apr 18 08:11:13 parabola systemd[1]: Stopping Save/Restore Sound Card State... Apr 18 08:11:13 parabola polkitd[422]: Unregistered Authentication Agent for unix-process:559:2422 (system bus name :1.6, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus) Apr 18 08:11:14 parabola dhcpcd[398]: forked to background, child pid 603 Apr 18 08:11:14 parabola ifplugd[325]: client: Started network profile 'neteth0-dhcp' Apr 18 08:11:14 parabola ifplugd[325]: Program executed successfully. Apr 18 08:11:16 parabola systemd-bootchart[148]: systemd-bootchart wrote /run/log/bootchart-20160418-0811.svg Apr 18 08:11:16 parabola systemd-bootchart[148]: Bootchart created: /run/log/bootchart-20160418-0811.svg Apr 18 08:11:16 parabola mysqld[413]: 2016-04-18 8:11:16 140682628630400 [Note] InnoDB: 128 rollback segment(s) are active. Apr 18 08:11:16 parabola mysqld[413]: 2016-04-18 8:11:16 140682628630400 [Note] InnoDB: Waiting for purge to start Apr 18 08:11:16 parabola mysqld[413]: 2016-04-18 8:11:16 140682628630400 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.28-76.1 started; log sequence number 871904946 Apr 18 08:11:17 parabola emacs[508]: Warning: due to a long standing Gtk+ bug Apr 18 08:11:17 parabola emacs[508]: http://bugzilla.gnome.org/show_bug.cgi?id=85715 Apr 18 08:11:17 parabola emacs[508]: Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Apr 18 08:11:17 parabola emacs[508]: Using an Emacs configured with --with-x-toolkit=lucid does not have this problem.
This is why.
cat ~/.gnupg/gpg-agent.conf
This fix makes gpg work on GuixSD, but then Parabola cannot find that program.
In unix this is called a loop device. It’s a way to mount files on the filesystem.
sudo pacman -S xdebug
As soon as you see the grub command line press the “c” key. You’ll be dropped into a grub shell. You’ll know you’re there, because you’ll see
grub >
Now, this is what you type
set root=(
Now press TAB and grub will give you some options. Grub will expand what you wrote into
set root=(hd
Grub will then tell you to either press 1 or 0. hd0 is your hard drive. You don’t want that. So type
set root=(hd1)
Now type
chainloader +1
That will essentially tell the grub that is on your harddisk, to chainload to the usb. This means that the usb stick has grub (or some other similiar software on it). So grub won’t try to find a bootable kernel on the usb stick. Instead, your harddrive’s grub will hand over controll to the usb stick’s grub.
boot
set root=(hd0,PartionNumberWhere/BootIs) linux /boot/vmlinuz-linux-libre root=/dev/sdaPartionNumberWhereRootIs initrd /boot/initramfs-linux-libre.img boot
For me this looks like:
set root=(hd0,1) linux /boot/vmlinuz-linux-libre root=/dev/sda1 initrd /boot/initramfs-linux-libre.img boot
https://incenp.org/notes/2015/gnupg-for-ssh-authentication.html http://lists.gnupg.org/pipermail/gnupg-users/2012-July/045059.html http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key https://blogs.s-osg.org/using-openpgp-keys-ssh-authentication/
http://security.stackexchange.com/questions/1806/why-should-one-not-use-the-same-asymmetric-key-for-encryption-as-they-do-for-sig http://superuser.com/questions/360507/are-gpg-and-ssh-keys-interchangable https://www.digitalocean.com/community/tutorials/how-to-authenticate-users-to-a-ssh-server-using-monkeysphere-on-an-ubuntu-vps
- caching my keys for the whole session
I’m trying to figure out how to send files from my phone to my computer, and I’m not able to do it.
You can read more here. To get started install bluez
and bluez-utils
package. Then do this:
- bluetoothctl
- power on
-
*