New Book Teardown #5: Electrical Engineering 101 3rd Edition (2011) | In The Lab With Jay Jay

This post is part of my video blog and you can find more information about this video over here.

You can support this channel on Patreon: patreon.com/JohnElliotV

In this video I take a look at Electrical Engineering 101: Everything You Should Have Learned in School…but Probably Didn’t 3rd Edition written by Darren Ashby and published in 2011.

In the book the author mentioned that they used to write for chipcenter.com which appears to have since been taken over by EE Times. ChatGPT provided more information.

The author also mentioned Mathcad. I’m planning to check that out over here: https://www.mathcad.com/

And some terms which came up (ChatGPT explains further):

Vcc
Voltage at the collector
Vee
Voltage at the emitter
Vdd
Voltage at the drain
Vss
Voltage at the source

Thanks very much for watching! And please remember to hit like and subscribe! :)


Following is a list of products I use which may appear in my videos. Clicking through on these links before purchasing from Amazon, eBay, or AliExpress is a great way to support the channel at no cost to you. Thanks!

Note: you can skip this if you would prefer.

Rigol MSO5074 Mixed Signal OscilloscopeThis is an image of the product.notes
Rigol PLA2216 Logic ProbeThis is an image of the product.notes
ATEN CS1922 2-Port DisplayPort KVMThis is an image of the product.notes
UNI-T UTi260B Thermal ImagerThis is an image of the product.notes
TOMLOV DM602 Pro Digital MicroscopeThis is an image of the product.notes
UNI-T UTG962E Signal GeneratorThis is an image of the product.notes
Leadstar 12″ LCD TVThis is an image of the product.notes
Riden RD6006 Bench Power SupplyThis is an image of the product.notes
Tenma 72-10505 Bench Power SupplyThis is an image of the product.notes
UPERFECT 15.6″ HDMI LCDThis is an image of the product.notes
Pro’sKit SS-331H Desoldering PumpThis is an image of the product.notes
NOYAFA NF-521 Thermal ImagerThis is an image of the product.notes
Dremel 4300 Rotary ToolThis is an image of the product.notes
Epson Perfection V39 Flatbed ScannerThis is an image of the product.notes
Maxitronix 300 In 1 (300in1) Electronics Project Lab KitThis is an image of the product.notes
OWON XDM1041 Bench MultimeterThis is an image of the product.notes
Maxitronix 500 In 1 (500in1) Electronics Project Lab KitThis is an image of the product.notes
Maxitronix 200 In 1 (200in1) Electronics Project Lab KitThis is an image of the product.notes
FILCO Majestouch 2SS 104-key Mechanical KeyboardThis is an image of the product.notes
ANENG AN-999S Bench MultimeterThis is an image of the product.notes
FILCO Majestouch 2SS 87-key Mechanical KeyboardThis is an image of the product.notes
Bosch IXO VI Electric ScrewdriverThis is an image of the product.notes
Victorinox Swiss Champ Red Swiss Army KnifeThis is an image of the product.notes
Kingst LA1010 USB Logic AnalyzerThis is an image of the product.notes
Dremel 2500 Multi-ViseThis is an image of the product.notes
YIHUA 938D Soldering TweezersThis is an image of the product.notes
Dremel 335 Plunge RouterThis is an image of the product.notes
ZKETECH EBD-A20H Electronic LoadThis is an image of the product.notes
Yizhan MicroscopeThis is an image of the product.notes
Miniware DT71 Digital TweezersThis is an image of the product.notes
Maxitronix 130 In 1 (130in1) Electronics Project Lab KitThis is an image of the product.notes
Dremel 220 Drill PressThis is an image of the product.notes
Rigol PLA2216 Compatible Logic ProbeThis is an image of the product.notes
Dremel EZ725 Rotary Tool Accessory SetThis is an image of the product.notes
Maxitronix 60 In 1 (60in1) Electronics Project Lab KitThis is an image of the product.notes
Brother P-Touch D210 Label MakerThis is an image of the product.notes
Brother P-touch H105 Label MakerThis is an image of the product.notes
ENGINEER PA-21 Crimping ToolThis is an image of the product.notes
Fluke 1AC-C2-II VoltAlert Voltage DetectorThis is an image of the product.notes
ENGINEER PA-09 Crimping ToolThis is an image of the product.notes
MESR-100 ESR MeterThis is an image of the product.notes
Horusdy Soldering StationThis is an image of the product.notes
Tera HW0006 Pro Barcode ScannerThis is an image of the product.notes
FNIRSI DSO-TC3 3 in 1 Oscilloscope, Signal Generator, Component TesterThis is an image of the product.notes
Ryobi RYSF5003 Stud FinderThis is an image of the product.notes
Hakko CHP 3C-SA Precision TweezersThis is an image of the product.notes
M6013 Capactance MeterThis is an image of the product.notes
UNI-T UT116A Digital TweezersThis is an image of the product.notes
Maxitronix Electronic Digital Recording Laboratory (59in1) Electronics Project Lab KitThis is an image of the product.notes
Jackcat Electric ScissorsThis is an image of the product.notes
DigiTech QM1323 MultimeterThis is an image of the product.notes
MMOBIEL Helping HandsThis is an image of the product.notes
ZZWS Book HolderThis is an image of the product.notes
TOWOT Industrial TweezersThis is an image of the product.notes
Maxitronix 30 In 1 (30in1) Electronics Project Lab KitThis is an image of the product.notes
Amazon Basics Ratchet ScrewdriverThis is an image of the product.notes
Maxitronix Sensor Robot 20 (20in1) Electronics Project Lab KitThis is an image of the product.notes
Kaisi 35x25cm Repair MatThis is an image of the product.notes
gku AC1009 Underdesk Keyboard DrawerThis is an image of the product.notes
QWORK Helping HandsThis is an image of the product.notes
Kaisi 45x30cm Repair MatThis is an image of the product.notes
Duratech TH-1980 PCB ClampThis is an image of the product.notes
FNIRSI SG-002 Signal GeneratorThis is an image of the product.notes
SHDSL Tape DispenserThis is an image of the product.notes
Maxitronix 10 In 1 (10in1) Electronics Project Lab KitThis is an image of the product.notes
Sudake SDK08 Test ClipsThis is an image of the product.notes
Capactior Discharge PenThis is an image of the product.notes
Portwest Standard Lab CoatThis is an image of the product.notes
Arlec PB91 Plug-In RCD Safety Switch with Surge ProtectorThis is an image of the product.notes
AMTECH NC-559-ASM FluxThis is an image of the product.notes
Klein Tools 32614 4-in-1 Multi-bit Precision Pocket ScrewdriverThis is an image of the product.notes
oz_gear CalipersThis is an image of the product.notes
Sharp EL-546L Scientific CalculatorThis is an image of the product.notes
Bysameyee Head-Mounted MagnifierThis is an image of the product.notes
Legion Tools Mini Screwdriver SetThis is an image of the product.notes
Scotch Titanium ScissorsThis is an image of the product.notes
Maxitronix Crystal Radio Kit Electronics ProjectThis is an image of the product.notes
Maxitronix AM/FM Radio Kit Electronics ProjectThis is an image of the product.notes
RELIFE RL-007GA Solder LugsThis is an image of the product.notes
Super Bright 90000LM LED TorchThis is an image of the product.notes
Bosch IXO Angle Screw AdapterThis is an image of the product.notes
Maxitronix Electronic Metal Detector Kit Electronics ProjectThis is an image of the product.notes
YOUOWO ID Badge HolderThis is an image of the product.notes
Diodrio Leather Pocket ProtectorThis is an image of the product.notes
OZSTOCK Large Folding Step LadderThis is an image of the product.notes
Craft Knife SetThis is an image of the product.notes
Fuumuui Paint BrushesThis is an image of the product.notes
Dremel Cutting Discs for Rotary ToolThis is an image of the product.notes
Gasmate ButaneThis is an image of the product.notes
Dremel 490 Rotary Tool Dust BlowerThis is an image of the product.notes
nmsafety GlovesThis is an image of the product.notes
HiLetGo USB Logic AnalyzerThis is an image of the product.notes
OZSTOCK Small Folding Step LadderThis is an image of the product.notes
Kaisi Soldering Tools w/ Desoldering PumpThis is an image of the product.notes
Magnetic/Claw Pickup ToolThis is an image of the product.notes
395nm UV LampThis is an image of the product.notes
Sudake SDK07 Test ClipsThis is an image of the product.notes
MECHANIC UV Curing LightThis is an image of the product.notes
Comidox ATX Power Supply TesterThis is an image of the product.notes
SpudgersThis is an image of the product.notes
Kaqiwze Blow TorchThis is an image of the product.notes
Telescopic Magnetic Pickup ToolThis is an image of the product.notes
Third HandThis is an image of the product.notes
Tungfull TH-161 Rotary Tool BitsThis is an image of the product.notes
Adafruit One PCB to Ruler Them All RulerThis is an image of the product.notes
JST XH2.54 Pre-crimped Connector KitThis is an image of the product.notes
Plato Model 170 Wire CuttersThis is an image of the product.notes
Yum Cha Universal Handheld Wire StripperThis is an image of the product.notes
365nm UV LampThis is an image of the product.notes
Drill ExtensionThis is an image of the product.notes
300pcs Heat Shrink Wire ConnectorsThis is an image of the product.notes
IC Chip Pickup ToolThis is an image of the product.notes
Metal SpudgersThis is an image of the product.notes
Telescopic Magnetic Pickup w/ LightThis is an image of the product.notes
Spudger SetThis is an image of the product.notes
Yum Cha 3pcs Drill Scrub BrushThis is an image of the product.notes
CrowbarThis is an image of the product.notes
Yum Cha Nylon Abrasive BrushThis is an image of the product.notes
Ampcom Automatic Network Cable TesterThis is an image of the product.notes
Stainless Steel TrayThis is an image of the product.notes
Multifunction HooksThis is an image of the product.notes
Heat Shrink Wire ConnectorsThis is an image of the product.notes
Yum Cha 10pcs Blue Microfiber ClothThis is an image of the product.notes
JST XH2.54 6pin Pre-crimped ConnectorThis is an image of the product.notes
OULLX NSS-681HDMI-RJ45 Cable TesterThis is an image of the product.notes
Telescopic MagnetThis is an image of the product.notes
Knife BladesThis is an image of the product.notes
SUNSHINE Hard Brush SetThis is an image of the product.notes
Yum Cha Probe TweezersThis is an image of the product.notes
VIBRATITE 5mm Brass Rotary Wire BrushThis is an image of the product.notes
Yum Cha J1091302 Sanding StickThis is an image of the product.notes
Yutiars Flat Paint Brush SetThis is an image of the product.notes
TOOKKS HZY ABS Wire FixtureThis is an image of the product.notes
Yum Cha 29 In 1 Mini Precision Screwdriver SetThis is an image of the product.notes
Yum Cha 2pcs Grease Cleaner Cleaning BricksThis is an image of the product.notes
Yum Cha 100pc Titanium Plated Drill BitsThis is an image of the product.notes
100pcs Heat Shrink Wire ConnectorsThis is an image of the product.notes
DT830B Digital MultimeterThis is an image of the product.notes
Yum Cha 2pcs Magnetic Soft Vise Jaw PadsThis is an image of the product.notes
Digital MeterThis is an image of the product.notes
Yum Cha 6pcs Wire BrushThis is an image of the product.notes
Yutiars Round Paint Brush SetThis is an image of the product.notes
Damotk 5pcs Crevice Cleaning BrushThis is an image of the product.notes
Yum Cha 10pcs Magic Foam SpongeThis is an image of the product.notes
Yum Cha Depth GaugeThis is an image of the product.notes
Yum Cha 100pcs Releasable Cable OrganizerThis is an image of the product.notes
Yum Cha Mini Magnetic Precision Screwdriver SetThis is an image of the product.notes
Ausum 25 In 1 Precision Screwdriver SetThis is an image of the product.notes
Sandleford 4 Piece Funnel SetThis is an image of the product.notes
Yum Cha 4pcs 30mm Deep Hole PenThis is an image of the product.notes
JST XH2.54 Connector KitThis is an image of the product.notes
Yum Cha Long Handle Wire BrushThis is an image of the product.notes
MOKIN CMO-346 3 inch Magnetic TrayThis is an image of the product.notes
Yum Cha Heavy Duty Stainless Steel Wire BrushThis is an image of the product.notes
Oloey Safety GogglesThis is an image of the product.notes
Aokin Wire CutterThis is an image of the product.notes
OOTDTY K9FA1E0555 Sanding DiscThis is an image of the product.notes
Yum Cha Dual-Purpose Sanding SticksThis is an image of the product.notes
Yum Cha Metallic Craftwork PenThis is an image of the product.notes
EXAR Signal GeneratorThis is an image of the product.notes
Yum Cha Double-ended Cotton SwabsThis is an image of the product.notes
Asometech Universal Stylus PenThis is an image of the product.notes
aToolTour Black Hexagon Deburring Drill BitThis is an image of the product.notes
Wozniak Solder LugsThis is an image of the product.notes

Let’s go shopping!

Fixing duplication in HTML title element for WordPress with Yoast SEO installed

I was having a problem in WordPress for my blog where the title contained duplicate values, like “John’s blogJohn’s blog”.

The fix for me was to edit wp-content/themes/twentyeleven/header.php and disable a bit of the output, as shown below. I basically just added an if ( false ) to disable the code which caused the duplicate content.

This seems to effectively mean that Yoast SEO is in charge of the titles now. You can configure separately the homepage, posts, and pages titles in the Yoast SEO settings. I configure mine in Yoast SEO Settings / Content Types like this:

Homepage
Site title Separator Tagline
Posts
Title Separator Site title
Pages
Title Separator Site title
<title>
<?php
  // Print the <title> tag based on what is being viewed.
  global $page, $paged;

  wp_title( '|', true, 'right' );

// 2024-07-14 jj5 - OLD: I removed this because wp_title() (above) does everything that needs to be done.
if ( false ) {
  // Add the site name.
  bloginfo( 'name' );

  // Add the site description for the home/front page.
  $site_description = get_bloginfo( 'description', 'display' );
  if ( $site_description && ( is_home() || is_front_page() ) ) {
    echo " | $site_description";
  }

  // Add a page number if necessary:
  if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
    /* translators: %s: Page number. */
    echo esc_html( ' | ' . sprintf( __( 'Page %s', 'twentyeleven' ), max( $paged, $page ) ) );
  }
}
?>
</title>

New WordPress plugins for the blog

I have been rolling out CloudFront for a few of my domains, including blog.jj5.net.

In order to integrate CloudFront with WordPress I used the W3 Total Cache plugin.

And in order to set the <link rel=”canonical”> element I used the Yoast SEO plugin.

At one point I had a problem with garbled content in my browser. Looked like the browser was trying to display compressed content as text. But now I can’t reproduce, so hopefully whatever the issue was it is now fixed…

InTheLabWithJayJay.com now with RSS feed

I added RSS capabilities for InTheLabWithJayJay.com. You can subscribe to the whole thing, or just one channel, or just one show, or just one feature… it was difficulty to create the UI to support that without overcomplicating things. I made the link on the RSS icon support different feed depending on which page you are on.

Refactoring jjlab.net

I just spent two whole days refactoring and improving my jjlab.net website.

One thing I had to think very carefully about for my modeling was the class/instance distinction for various things, you can see my notes below.

So channels have shows, and shows have features.

A series has segments, and segments have a video.

A series is an instance of a show, and a segment is an instance of a feature.

Everything is easy when you know how!

John's notes about the design of his model

Error while running rockboxdev.sh

UPDATE: this problem was solved by installing some packages. The relevant hint is highlighted in red below.

This is the salt state I used to install dependencies on my Debian 12 system:

rockbox-dev-tools:
  pkg.latest:
    - pkgs:
      - texinfo
      - texi2html
      - automake
      - autotools-dev
      - libtool
      - libtool-bin
      - autoconf
      - flex
      - bison
      - libisl-dev
      - libgmp-dev
      - libmpc-dev
      - libmpfr-dev

I am following these instructions: https://git.rockbox.org/cgit/rockbox.git/tree/docs/README and am having this problem:

-------------------
Wed Jun 12 17:29:38 [bash:5.2.15 jobs:0 error:0 time:9641]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org/rockbox/build
$ sudo ../tools/rockboxdev.sh
Download directory : /tmp/rbdev-dl (set RBDEV_DOWNLOAD or use --dlwhere= to change)
Install prefix     : /usr/local  (set RBDEV_PREFIX or use --prefix= to change)
Build dir          : /tmp/rbdev-build (set RBDEV_BUILD or use --builddir= to change)
Make options       :  (set MAKEFLAGS or use --makeflags= to change)
Restart step       :  (set RBDEV_RESTART or use --restart= to change)
Target arch        :  (set RBDEV_TARGET or use --target= to change)
Select target arch:
m   - m68k     (iriver h1x0/h3x0, iaudio m3/m5/x5 and mpio hd200)
a   - arm      (ipods, iriver H10, Sansa, D2, Gigabeat, older Sony NWZ, etc)
i   - mips     (Jz47xx and ATJ-based players)
x   - arm-linux  (Generic Linux ARM: Samsung ypr0, Linux-based Sony NWZ)
y   - mips-linux  (Generic Linux MIPS: eg the many HiBy-OS targets)
separate multiple targets with spaces
(Example: "m a i" will build m68k, arm, and mips)

a

ROCKBOXDEV: Starting step 'binutils'
ROCKBOXDEV: Downloading binutils-2.26.1.tar.bz2 using curl
ROCKBOXDEV: try http://mirrors.kernel.org/gnu/binutils/binutils-2.26.1.tar.bz2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24.4M  100 24.4M    0     0   791k      0  0:00:31  0:00:31 --:--:--  702k
ROCKBOXDEV: extracting binutils-2.26.1
ROCKBOXDEV: Getting ISL
ROCKBOXDEV: Downloading isl-0.15.tar.bz2 using curl
ROCKBOXDEV: try https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1538k  100 1538k    0     0   595k      0  0:00:02  0:00:02 --:--:--  595k
ROCKBOXDEV: logging to /tmp/rbdev-build/build-binutils.log
ROCKBOXDEV: mkdir build-binutils
ROCKBOXDEV: binutils/configure
ROCKBOXDEV: binutils/make
ROCKBOXDEV: an error occured, please see /tmp/rbdev-build/build-binutils.log
-------------------
Wed Jun 12 17:30:31 [bash:5.2.15 jobs:0 error:0 time:9694]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org/rockbox/build
$ cat /tmp/rbdev-build/build-binutils.log
Running '../binutils-2.26.1/configure --target=arm-elf-eabi --prefix=/usr/local --disable-docs --disable-werror'
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... arm-elf-eabi
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... no
checking for mawk... mawk
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
configure: WARNING: using in-tree ISL, disabling version check
checking for default BUILD_CONFIG... 
checking for --enable-vtable-verify... no
checking for bison... bison -y
checking for bison... bison
checking for gm4... no
checking for gnum4... no
checking for m4... m4
checking for flex... flex
checking for flex... flex
checking for makeinfo... makeinfo
checking for expect... no
checking for runtest... no
checking for ar... ar
checking for as... as
checking for dlltool... no
checking for ld... ld
checking for lipo... no
checking for nm... nm
checking for ranlib... ranlib
checking for strip... strip
checking for windres... no
checking for windmc... no
checking for objcopy... objcopy
checking for objdump... objdump
checking for readelf... readelf
checking for arm-elf-eabi-cc... no
checking for arm-elf-eabi-gcc... no
checking for arm-elf-eabi-c++... no
checking for arm-elf-eabi-g++... no
checking for arm-elf-eabi-cxx... no
checking for arm-elf-eabi-gxx... no
checking for arm-elf-eabi-gcc... no
checking for arm-elf-eabi-gcj... no
checking for arm-elf-eabi-gfortran... no
checking for arm-elf-eabi-gccgo... no
checking for arm-elf-eabi-ar... no
checking for arm-elf-eabi-as... no
checking for arm-elf-eabi-dlltool... no
checking for arm-elf-eabi-ld... no
checking for arm-elf-eabi-lipo... no
checking for arm-elf-eabi-nm... no
checking for arm-elf-eabi-objcopy... no
checking for arm-elf-eabi-objdump... no
checking for arm-elf-eabi-ranlib... no
checking for arm-elf-eabi-readelf... no
checking for arm-elf-eabi-strip... no
checking for arm-elf-eabi-windres... no
checking for arm-elf-eabi-windmc... no
checking where to find the target ar... just compiled
checking where to find the target as... just compiled
checking where to find the target cc... pre-installed
checking where to find the target c++... pre-installed
checking where to find the target c++ for libstdc++... pre-installed
checking where to find the target dlltool... just compiled
checking where to find the target gcc... pre-installed
checking where to find the target gcj... pre-installed
checking where to find the target gfortran... pre-installed
checking where to find the target gccgo... pre-installed
checking where to find the target ld... just compiled
checking where to find the target lipo... pre-installed
checking where to find the target nm... just compiled
checking where to find the target objcopy... just compiled
checking where to find the target objdump... just compiled
checking where to find the target ranlib... just compiled
checking where to find the target readelf... just compiled
checking where to find the target strip... just compiled
checking where to find the target windres... just compiled
checking where to find the target windmc... just compiled
checking whether to enable maintainer-specific portions of Makefiles... no
configure: creating ./config.status
config.status: creating Makefile
Running 'gmake -j8'
gmake[1]: Entering directory '/tmp/rbdev-build/build-binutils'
gmake[1]: Nothing to be done for 'all-target'.
mkdir -p -- ./intl
mkdir -p -- ./isl
mkdir -p -- ./etc
Configuring in ./intl
Configuring in ./isl
mkdir -p -- ./libiberty
Configuring in ./etc
mkdir -p -- ./zlib
Configuring in ./libiberty
Configuring in ./zlib
configure: creating cache ./config.cache
checking whether to enable maintainer-specific portions of Makefiles... no
checking for makeinfo... makeinfo --split-size=5000000
configure: creating cache ./config.cache
checking whether gmake sets $(MAKE)... configure: creating cache ./config.cache
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating cache ./config.cache
yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether NLS is requested... yes
configure: creating cache ./config.cache
checking for a BSD-compatible install... checking for msgfmt... no
checking for gmsgfmt... /usr/bin/install -c
checking whether build environment is sane... :
checking for xgettext... no
yes
checking build system type... configure: updating cache ./config.cache
checking for msgmerge... no
checking for x86_64-pc-linux-gnu-gcc... gcc
configure: creating ./config.status
checking for a thread-safe mkdir -p... x86_64-pc-linux-gnu
/usr/bin/mkdir -p
checking host system type... checking for gawk... mawk
checking whether gmake sets $(MAKE)... yes
x86_64-pc-linux-gnu
checking target system type... checking whether gmake supports nested variables... yes
checking for C compiler default output file name... arm-elf-eabi
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... checking whether gmake supports nested variables... (cached) yes
checking for x86_64-pc-linux-gnu-gcc... gcc
checking whether the C compiler works... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... checking for perl... perl
checking build system type... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... config.status: creating Makefile

checking for suffix of object files... x86_64-pc-linux-gnu
checking host system type... 
x86_64-pc-linux-gnu
checking for x86_64-pc-linux-gnu-ar... ar
checking for x86_64-pc-linux-gnu-ranlib... ranlib
checking whether to install libiberty headers and static library... no
configure: target_header_dir = 
checking for x86_64-pc-linux-gnu-gcc... gcc
checking whether we are cross compiling... o
checking whether we are using the GNU C compiler... gmake[2]: Entering directory '/tmp/rbdev-build/build-binutils/etc'
gmake[2]: Nothing to be done for 'all'.
gmake[2]: Leaving directory '/tmp/rbdev-build/build-binutils/etc'
yes
checking whether gcc accepts -g... no
checking for suffix of object files... yes
checking for gcc option to accept ISO C89... checking for C compiler default output file name... o
checking whether we are using the GNU C compiler... none needed
a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... yes
checking whether gcc accepts -g... checking build system type... x86_64-pc-linux-gnu
checking host system type... yes
checking for gcc option to accept ISO C89... x86_64-pc-linux-gnu
checking for x86_64-pc-linux-gnu-ranlib... ranlib
checking for library containing strerror... 
checking for suffix of object files... none needed
checking whether gcc understands -c and -o together... o
checking whether we are using the GNU C compiler... none required
checking how to run the C preprocessor... yes
checking whether gcc accepts -g... yes
checking for style of include used by gmake... gcc -E
GNU
checking dependency style of gcc... yes
checking for gcc option to accept ISO C89... checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... none needed
checking how to run the C preprocessor... /usr/bin/grep -E
checking for ANSI C header files... gcc3
checking whether we are using the GNU C++ compiler... gcc -E
yes
checking whether g++ accepts -g... checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking dependency style of g++... gcc3
checking for C compiler vendor... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for sys/types.h... yes
yes
checking for sys/types.h... checking for sys/stat.h... yes
gnu
yes
checking for stdlib.h... checking for sys/stat.h... checking build system type... x86_64-pc-linux-gnu
checking host system type... yes
yes
checking for string.h... checking for stdlib.h... x86_64-pc-linux-gnu
checking whether the compiler supports function __attribute__((__warn_unused_result__))... yes
yes
yes
checking for __attribute__... checking for memory.h... checking for string.h... yes
checking how to print strings... yes
checking for strings.h... yes
checking for memory.h... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... yes
/usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... checking for inttypes.h... ld
checking if the linker (ld) is GNU ld... yes
yes
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... checking for strings.h... yes
checking for stdint.h... yes
checking for inttypes.h... yes
BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... yes
checking for unistd.h... 1572864
checking for stdint.h... checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for ld option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-pc-linux-gnu-ar... ar
checking for archiver @FILE support... yes
yes
checking for off_t... @
checking for x86_64-pc-linux-gnu-strip... no
checking for strip... strip
checking for x86_64-pc-linux-gnu-ranlib... ranlib
checking command to parse nm output from gcc object... checking for unistd.h... yes
checking minix/config.h usability... yes
checking for size_t... no
checking minix/config.h presence... ok
checking for sysroot... no
no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... checking for x86_64-pc-linux-gnu-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... yes
yes
checking for working alloca.h... checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
gcc -E
checking whether gcc supports -W... yes
checking for alloca... yes
checking whether gcc supports -Wall... checking for ANSI C header files... yes
checking for stdlib.h... (cached) yes
yes
checking whether gcc supports -Wwrite-strings... checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking whether gcc supports -Wc++-compat... yes
checking for working mmap... yes
checking whether gcc supports -Wstrict-prototypes... yes
checking whether gcc supports -pedantic ... yes
checking for sys/types.h... yes
checking whether gcc and cc understand -c and -o together... yes
checking for sys/stat.h... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
yes
checking whether integer division by zero raises SIGFPE... checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for an ANSI C-conforming const... yes
yes
checking for stdint.h... checking for memory.h... yes
checking for inline... yes
checking for unsigned long long... yes
inline
checking whether byte ordering is bigendian... checking for strings.h... yes
checking for inttypes.h... yes
checking for inttypes.h... yes
no
checking for a BSD-compatible install... /usr/bin/install -c
yes
checking whether the inttypes.h PRIxNN macros are broken... checking for stdint.h... checking for sys/file.h... yes
no
checking for ld used by GCC... ld
checking if the linker (ld) is GNU ld... checking for sys/param.h... yes
checking for shared library run path origin... yes
yes
done
checking for unistd.h... checking for limits.h... checking argz.h usability... yes
checking for stdlib.h... (cached) yes
checking for malloc.h... yes
checking for dlfcn.h... yes
checking argz.h presence... yes
yes
checking for argz.h... yes
checking for string.h... (cached) yes
checking limits.h usability... checking for unistd.h... (cached) yes
yes
checking for objdir... .libs
checking for strings.h... (cached) yes
checking for sys/time.h... yes
checking limits.h presence... yes
yes
checking for limits.h... yes
checking for time.h... checking locale.h usability... yes
checking for sys/resource.h... checking if gcc supports -fno-rtti -fno-exceptions... yes
checking locale.h presence... yes
checking for locale.h... yes
yes
checking nl_types.h usability... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... checking for sys/stat.h... (cached) yes
checking for sys/mman.h... yes
checking if gcc static flag -static works... yes
checking nl_types.h presence... yes
checking for fcntl.h... yes
checking for nl_types.h... yes
checking malloc.h usability... yes
checking for alloca.h... yes
yes
checking malloc.h presence... checking for sys/pstat.h... yes
checking for malloc.h... yes
no
checking stddef.h usability... checking for sys/sysmp.h... yes
checking if gcc supports -c -o file.o... no
checking for sys/sysinfo.h... yes
checking stddef.h presence... yes
checking for stddef.h... yes
yes
checking for stdlib.h... (cached) yes
checking for machine/hal_sysinfo.h... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (ld -m elf_x86_64) supports shared libraries... checking for string.h... (cached) yes
yes
checking for a thread-safe mkdir -p... checking for unistd.h... (cached) yes
no
/usr/bin/mkdir -p
checking for gawk... mawk
checking whether gmake sets $(MAKE)... checking for sys/table.h... yes
checking dynamic linker characteristics... checking sys/param.h usability... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for x86_64-pc-linux-gnu-gcc... gcc
no
checking for sys/sysctl.h... no
yes
checking sys/param.h presence... checking for sys/systemcfg.h... yes
checking for sys/param.h... yes
no
checking for feof_unlocked... checking for stdint.h... (cached) yes
checking for stdio_ext.h... yes
checking for process.h... checking for C compiler default output file name... yes
no
checking for fgets_unlocked... checking for sys/prctl.h... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
yes
checking for sys/wait.h that is POSIX.1 compatible... checking how to run the C++ preprocessor... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... yes
yes
checking whether time.h and sys/time.h may both be included... checking for getc_unlocked... g++ -E

checking for suffix of object files... yes
checking whether errno must be declared... o
checking whether we are using the GNU C compiler... no
checking size of int... yes
checking for getcwd... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... 4
checking size of long... yes
checking for getegid... checking for ld used by g++... ld -m elf_x86_64
checking if the linker (ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (ld -m elf_x86_64) supports shared libraries... yes
none needed
checking for style of include used by gmake... GNU
checking dependency style of gcc... 8
checking size of size_t... yes
gcc3
checking for geteuid... checking how to print strings... printf
checking for a sed that does not truncate output... checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... 8
/usr/bin/sed
checking for long long... checking for grep that handles long lines and -e... yes
/usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... checking for getgid... ld
checking if the linker (ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... yes
checking if g++ static flag -static works... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for ld option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-ar... ar
checking for x86_64-pc-linux-gnu-strip... no
checking for strip... strip
checking for x86_64-pc-linux-gnu-ranlib... ranlib
checking command to parse nm output from gcc object... yes
checking for getuid... yes
checking size of long long... yes
checking if g++ supports -c -o file.o... yes
checking for mempcpy... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for perl... perl
checking for pdflatex... no
checking for pod2html... pod2html
checking for stdint types... ok
8
checking for a 64-bit type... yes
checking how to run the C preprocessor... checking for munmap... uint64_t
stdint.h (shortcircuit)
checking for intptr_t... make use of stdint.h in include/isl/stdint.h (assuming C99 compatible system)
checking which gmp to use... system
checking gmp.h usability... gcc -E
no
checking gmp.h presence... yes
checking for putenv... checking for ANSI C header files... no
checking for gmp.h... no
configure: error: gmp.h header not found
yes
checking for uintptr_t... gmake[1]: *** [Makefile:5771: configure-isl] Error 1
gmake[1]: *** Waiting for unfinished jobs....
yes
checking for setenv... yes
yes
checking for ssize_t... checking for setlocale... yes
checking for sys/types.h... yes
yes
checking for sys/stat.h... checking for stpcpy... yes
checking for pid_t... yes
checking for stdlib.h... yes
yes
checking for strcasecmp... checking for string.h... yes
checking for library containing strerror... yes
checking for memory.h... yes
none required
checking for asprintf... checking for strdup... yes
checking for strings.h... yes
yes
checking for inttypes.h... checking for atexit... yes
checking for strtoul... yes
checking for stdint.h... yes
checking for basename... yes
checking for unistd.h... yes
checking for tsearch... yes
yes
checking for dlfcn.h... checking for bcmp... yes
yes
checking for objdir... .libs
checking for __argz_count... yes
checking for bcopy... yes
checking for __argz_stringify... checking if gcc supports -fno-rtti -fno-exceptions... yes
checking for bsearch... yes
no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... checking for __argz_next... yes
checking if gcc static flag -static works... yes
checking for bzero... yes
checking for __fsetlocking... yes
checking if gcc supports -c -o file.o... yes
yes
checking for iconv... checking for calloc... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... yes
yes
checking for iconv declaration... checking for clock... install-shextern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for nl_langinfo and CODESET... yes
checking for ffs... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C preprocessor... gcc -E
yes
checking for LC_MESSAGES... checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
yes
checking for getcwd... checking for getpagesize... yes
checking for bison... bison
checking version of bison... 3.8.2, ok
checking whether NLS is requested... yes
checking whether included gettext is requested... no
checking for GNU gettext in libc... yes
yes
checking for working mmap... checking for getpagesize... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for aclocal... aclocal
checking for autoconf... autoconf
checking for autoheader... autoheader
yes
checking for gettimeofday... configure: updating cache ./config.cache
yes
configure: creating ./config.status
checking for memcpy... yes
checking for index... yes
checking for strerror... yes
checking for insque... config.status: creating Makefile
yes
config.status: creating config.intl
checking for unistd.h... (cached) yes
config.status: creating config.h
config.status: executing default-1 commands
yes
configure: updating cache ./config.cache
checking for memchr... configure: creating ./config.status
yes
checking for memcmp... yes
checking for memcpy... yes
checking for memmem... yes
checking for memmove... yes
checking for mempcpy... yes
checking for memset... yes
checking for mkstemps... yes
checking for putenv... yes
checking for random... yes
checking for rename... config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
yes
checking for rindex... yes
checking for setenv... yes
checking for snprintf... yes
checking for sigsetmask... yes
checking for stpcpy... yes
checking for stpncpy... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strncasecmp... yes
checking for strndup... yes
checking for strnlen... yes
checking for strrchr... yes
checking for strstr... yes
checking for strtod... yes
checking for strtol... yes
checking for strtoul... yes
checking for strtoll... yes
checking for strtoull... yes
checking for strverscmp... yes
checking for tmpnam... yes
checking for vasprintf... yes
checking for vfprintf... yes
checking for vprintf... yes
checking for vsnprintf... yes
checking for vsprintf... yes
checking for waitpid... yes
checking for setproctitle... no
checking whether alloca needs Cray hooks... no
checking stack direction for C alloca... 1
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for _doprnt... no
checking for sys_errlist... no
checking for sys_nerr... no
checking for sys_siglist... no
checking for external symbol _system_configuration... no
checking for __fsetlocking... yes
checking for canonicalize_file_name... yes
checking for dup3... yes
checking for getrlimit... yes
checking for getrusage... yes
checking for getsysinfo... no
checking for gettimeofday... (cached) yes
checking for on_exit... yes
checking for psignal... yes
checking for pstat_getdynamic... no
checking for pstat_getstatic... no
checking for realpath... yes
checking for setrlimit... yes
checking for sbrk... yes
checking for spawnve... no
checking for spawnvpe... no
checking for strerror... yes
checking for strsignal... yes
checking for sysconf... yes
checking for sysctl... no
checking for sysmp... no
checking for table... no
checking for times... yes
checking for wait3... yes
checking for wait4... yes
checking whether basename is declared... yes
checking whether ffs is declared... yes
checking whether asprintf is declared... yes
checking whether vasprintf is declared... yes
checking whether snprintf is declared... yes
checking whether vsnprintf is declared... yes
checking whether calloc is declared... yes
checking whether getenv is declared... yes
checking whether getopt is declared... yes
checking whether malloc is declared... yes
checking whether realloc is declared... yes
checking whether sbrk is declared... yes
checking whether strtol is declared... yes
checking whether strtoul is declared... yes
checking whether strtoll is declared... yes
checking whether strtoull is declared... yes
checking whether strverscmp is declared... yes
checking whether canonicalize_file_name must be declared... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... yes
checking for working strncmp... yes
configure: updating cache ./config.cache
configure: creating ./config.status
config.status: creating Makefile
config.status: creating testsuite/Makefile
config.status: creating config.h
config.status: executing default commands
gmake[1]: Leaving directory '/tmp/rbdev-build/build-binutils'
gmake: *** [Makefile:847: all] Error 2
-------------------

Missing libtool when preparing to build rockbox

UPDATE: the solution to this problem was to install the package ‘libtool-bin’.

I am following these instructions: https://git.rockbox.org/cgit/rockbox.git/tree/docs/README and am having this problem:

-------------------
Wed Jun 12 16:02:02 [bash:5.2.15 jobs:0 error:0 time:4385]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org
$ git clone git://git.rockbox.org/rockbox
Cloning into 'rockbox'...
remote: Enumerating objects: 294287, done.
remote: Counting objects: 100% (294287/294287), done.
remote: Compressing objects: 100% (65094/65094), done.
remote: Total 294287 (delta 229471), reused 292590 (delta 227774), pack-reused 0 (from 0)
Receiving objects: 100% (294287/294287), 171.09 MiB | 3.97 MiB/s, done.
Resolving deltas: 100% (229471/229471), done.
-------------------
Wed Jun 12 16:03:02 [bash:5.2.15 jobs:0 error:0 time:4445]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org
$ cd rockbox
-------------------
Wed Jun 12 16:03:11 [bash:5.2.15 jobs:0 error:0 time:4454]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org/rockbox
$ mkdir build
-------------------
Wed Jun 12 16:03:13 [bash:5.2.15 jobs:0 error:0 time:4456]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org/rockbox
$ cd build
-------------------
Wed Jun 12 16:03:15 [bash:5.2.15 jobs:0 error:0 time:4458]
jj5@virtuoso:/home/jj5/repo/git/git.rockbox.org/rockbox/build
$ ../tools/rockboxdev.sh
ROCKBOXDEV: "libtool" is required for this script to work.
ROCKBOXDEV: Please install the missing tools and re-run the script.
-------------------

I did install the ‘libtool’ package on my Debian system, but there is no ‘libtool’ command, only ‘libtoolize’.