I tried to get flutter running on my Lenovo Duet Chromebook. Unfortunately, I got
$ flutter doctor -v
~/apps/flutter/bin/internal/shared.sh: line 228: ~/apps/flutter/bin/cache/dart-sdk/bin/dart: cannot execute binary file: Exec format error
$ uname -a
Linux penguin 5.4.119-14945-gafc97d54f809 #1 SMP PREEMPT Tue Aug 10 21:44:33 PDT 2021 aarch64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
How is it possible to flutter running?
Thank you in advance,
Related
uname -a tells the "kernel version" is 3.10.0
[root#iZbp16uggk8lf3x949ewxiZ ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root#iZbp16uggk8lf3x949ewxiZ ~]# uname -a
Linux iZbp16uggk8lf3x949ewxiZ 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
LINUX_VERSION_CODE also says current kernel version is 3.10.0
[root#iZbp16uggk8lf3x949ewxiZ ~]# grep -rni "LINUX_VERSION_CODE" /usr/include/
/usr/include/linux/version.h:1:#define LINUX_VERSION_CODE 199168
But When I find a kernel function tcp_rtx_synack exist
[root#iZbp16uggk8lf3x949ewxiZ ~]# cat /proc/kallsyms | grep tcp_rtx_synack
ffffffff952a0700 t tcp_rtx_synack.part.26
ffffffff952a0730 T tcp_rtx_synack
ffffffff95721f90 r __ksymtab_tcp_rtx_synack
ffffffff95739e78 r __kcrctab_tcp_rtx_synack
ffffffff95765c36 r __kstrtab_tcp_rtx_synack
3.17 https://elixir.bootlin.com/linux/v3.17/A/ident/tcp_rtx_synack func tcp_rtx_synack exist
3.16 https://elixir.bootlin.com/linux/v3.17/A/ident/tcp_rtx_synack func tcp_rtx_synack not exist
Which means my centos kernel version is at least 3.17 not 3.10
I'm writting the eBPF which need more exact kernel version info because function and data struct are different from each kernel version.
I have buy two VMs on different Cloud provisioner and both VMs show like above.
CentOS, like RHEL, contains backports of various patches (features, fixes, etc.) to older kernel versions. So you can't rely on the kernel version to know which features or functions are available.
Instead, you can either probe for the available features from userspace (e.g., with bpftool feature probe) or use CO-RE to detect it with BTF.
I met a problem when I tried to use IVSHMEM.
Below is the configuration from my side:
vm xml configuration for IVSHMEM device:
<shmem name='ivshmem'>
<model type='ivshmem-plain'/>
<size unit='M'>2</size>
<address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
</shmem>
after the booting up and I found the qemu commandline ideedly have the device option:
ps aux | grep ivshmem
/usr/bin/qemu-system-x86_64
.......(ignore other options)
-object memory-backend-file,id=shmmem-shmem0,mem-path=/dev/shm/hostmem,size=4194304,share=yes -device ivshmem-plain,id=shmem0,memdev=shmmem-shmem0,bus=pcie.0,addr=0x10
lspci command not shown the device.
lshw command indeedly show the device:
*-memory UNCLAIMED
description: RAM memory
product: Inter-VM shared memory
vendor: Red Hat, Inc.
physical id: 10
bus info: pci#0000:00:10.0
version: 01
width: 64 bits
clock: 33MHz (30.3ns)
configuration: latency=0
resources: memory:fcc1c000-fcc1c0ff memory:fdc00000-fdffffff
My host os and gust vm os is ubuntu 20.04 and version is:
uname -a
5.8.0-43-generic #49~20.04.1-Ubuntu SMP Fri Feb 5 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Anything input on this one?
You first need to load the generic driver:
modprobe uio_pci_generic
Then you will see the PCI device.
Afterwards you can load your own kernel module by using
insmod uio_ivshmem.ko
Note that you probably need to build the module first.
Sharing below the output of my server info.
[root#HBAPIPUATAP13 mongodb-linux-x86_64-enterprise-rhel70-4.0.1]# uname -a
Linux HBAPIPUATAP13 3.10.0-862.14.4.el7.x86_64 #1 SMP Fri Sep 21 09:07:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root#HBAPIPUATAP13 mongodb-linux-x86_64-enterprise-rhel70-4.0.1]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
The below packages need to be installed before starting mongod process.
yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl libpcap lm_sensors-libs net-snmp net-snmp-agent-libs openldap openssl rpm-libs tcp_wrappers-libs
Ref: https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-red-hat/
I am trying to remote debug server side swift from macOS.
lldb-server run on Ubuntu 16.04 on Docker on macOS.
I am using swift-4.1-RELEASE binaries.
root#031ab2443e1a:/var/vapor# lldb-server version
lldb version 5.0.0 (git#github.com:apple/swift-lldb.git revision 76dfa56ed35eaa392f7e51088c08f08f1150d142)
Swift-4.1 (revision f01501c324876fc07820dc28923d7088fb7af847)
clang revision cd84be6c4294f9ec302c20c63a601cbaeaa6a017
llvm revision cf364153438b3ac07a4a7d721159936e439ba2e7
I am also using swift-4.1-RELEASE snapshot on macOS.
[omochi#omochi-iMac-PC43 ~]$ export TOOLCHAINS=org.swift.4120180329a
[omochi#omochi-iMac-PC43 ~]$ lldb -version
lldb-360.0.0 (buildbot 2018-03-29)
Swift-4.1 (revision f01501c324876fc07820dc28923d7088fb7af847)
clang revision cd84be6c4294f9ec302c20c63a601cbaeaa6a017
llvm revision cf364153438b3ac07a4a7d721159936e439ba2e7
I could connect them.
In server.
root#031ab2443e1a:/var/vapor# lldb-server platform --listen "*:31166" --server
Connection established.
In mac.
[omochi#omochi-iMac-PC43 ~]$ lldb
(lldb) platform select remote-linux
Platform: remote-linux
Connected: no
(lldb) platform connect connect://127.0.0.1:31166
Platform: remote-linux
Triple: x86_64-*-linux-gnu
OS Version: 4.9.93 (4.9.93-linuxkit-aufs)
Kernel: #1 SMP Wed Jun 6 16:55:56 UTC 2018
Hostname: 031ab2443e1a
Connected: yes
WorkingDir: /var/vapor
(lldb) platform process list
6 matching processes were found on "remote-linux"
PID PARENT USER TRIPLE NAME
====== ====== ========== ======================== ============================
1 0 (null) x86_64-*-linux dash
291 1 x86_64-*-linux vapor
423 0 x86_64-*-linux bash
572 291 x86_64-*-linux Run
587 0 x86_64-*-linux bash
676 423 x86_64-*-linux lldb-server
But, attach fails.
(lldb) attach 572
error: attach failed: Failed to connect port
I tested lldb in ubuntu to connect lldb-server in itself.
Then attach is succeeded.
So I think lldb-server run correctly to attach process.
Why attach from macOS is failed?
How to solve this.
I found answer. lldb-server and lldb use other ports to debug. it can be specified by --min-gdbserver-port and --max-gdbserver-port options of lldb-server. And I expose these ports I specified via docker function. I finally success to connect.
Just to elaborate on omochimetaru answer, you can specify the ports used by LLDB-server as such:
lldb-server platform --listen "*:31166" --server --min-gdbserver-port 31200 --max-gdbserver-port 31300
And of course you need to expose those ports in your Dockerfile:
EXPOSE 31166
EXPOSE 31200-31300
And also when you run the container:
docker run --privileged --name vapor-server -p 8080:8080 -p 31166:31166 -p 31200-31300:31200-31300 vapor-image
Please note you need to run the docker as privileged (--privileged option), otherwise attaching the debugger will fail with an Operation not Permitted error.
What are installed for minikube:
$ ls -al /usr/local/bin/
-rwxr-xr-x 1 root root 26406912 Jun 14 12:05 docker-machine
-rwxrwxr-x 1 me libvirtd 11889064 Jun 14 12:07 docker-machine-driver-kvm
-rwxrwxr-x 1 me me 70232912 Jun 14 11:58 kubectl
-rwxrwxr-x 1 me me 82512696 Jun 14 11:57 minikube
Trying to start cluster by minikube
$ minikube start --vm-driver=kvm
Starting local Kubernetes v1.6.4 cluster...
Starting VM...
E0614 12:07:39.515994 14655 start.go:127] Error starting host: Error creating host: Error creating machine: Error in driver during machine creation: virError(Code=8, Domain=44, Message='invalid argument: could not find capabilities for domaintype=kvm ').
Retrying.
E0614 12:07:39.517076 14655 start.go:133] Error starting host: Error creating host: Error creating machine: Error in driver during machine creation: virError(Code=8, Domain=44, Message='invalid argument: could not find capabilities for domaintype=kvm ')
I am new to kubernetes. Any idea how to fix it? Thanks
UPDATE
sudo /usr/sbin/kvm-ok
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
and then hard poweroff/poweron your system
KVM acceleration can NOT be used
$ dmesg | grep kvm
[ 2.114855] kvm: disabled by bios
[ 2.327746] kvm: disabled by bios
[ 120.423249] kvm: disabled by bios
[ 222.250977] kvm: disabled by bios
My update is close to the solution. The solution is to enable virtualization in the BIOS.
1, Power on your PC and open the BIOS.
2, Go to the security section and enable virtualization.
you need to install the kvm package refer package.
https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm-driver
# Install libvirt and qemu-kvm on your system, e.g.
# Debian/Ubuntu
$ sudo apt install libvirt-bin qemu-kvm
# Fedora/CentOS/RHEL
$ sudo yum install libvirt-daemon-kvm kvm
# Add yourself to the libvirtd group (use libvirt group for rpm based distros) so you don't need to sudo
# Debian/Ubuntu (NOTE: For Ubuntu 17.04 change the group to `libvirt`)
$ sudo usermod -a -G libvirtd $(whoami)
# Fedora/CentOS/RHEL
$ sudo usermod -a -G libvirt $(whoami)
# Update your current session for the group change to take effect
# Debian/Ubuntu (NOTE: For Ubuntu 17.04 change the group to `libvirt`)
$ newgrp libvirtd
# Fedora/CentOS/RHEL
$ newgrp libvirt